在java中创建对象时给我一个错误

时间:2017-03-07 12:12:43

标签: java android eclipse

我在使用Java中定义的类创建对象时遇到错误。 这是我的代码:

public class encapsulation {

    class Emp
    {
        int empId;
        String empName;
    }

    public static void main(String[]args)   
    {
        Emp e1 = new Emp();
    }
}

但它给了我一个错误:

  

无法访问类型封装的封闭实例。必须使用封装类型的封闭实例来限定分配(例如x.new A(),其中x是封装的实例)。

这是一个screeshot:Error in object creation using java

2 个答案:

答案 0 :(得分:2)

您正在尝试实例化内部类的对象。内部类实例始终需要与外部类实例相关联。试试这个 -

public static void main(String[]args)
{
    encapsulation en = new encapsulation();
    encapsulation.Emp e1 = en.new Emp();
}

查看the official tutorial了解详情。

答案 1 :(得分:2)

如果Emp中有内部成员encapsulationEmp的任何实例都属于{{>> 1}}。如果您不想这样,请通过添加encapsulation修饰符来使其成为嵌套类:

static

现在public class encapsulation { static class Emp { ...... 被声明为Emp,它不属于static的任何特定实例,因此您无需实例化encapsulation来实例化{{ 1}}。