我在使用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
答案 0 :(得分:2)
您正在尝试实例化内部类的对象。内部类实例始终需要与外部类实例相关联。试试这个 -
public static void main(String[]args)
{
encapsulation en = new encapsulation();
encapsulation.Emp e1 = en.new Emp();
}
查看the official tutorial了解详情。
答案 1 :(得分:2)
如果Emp
中有内部成员encapsulation
,Emp
的任何实例都属于{{>> 1}}。如果您不想这样,请通过添加encapsulation
修饰符来使其成为嵌套类:
static
现在public class encapsulation {
static class Emp {
......
被声明为Emp
,它不属于static
的任何特定实例,因此您无需实例化encapsulation
来实例化{{ 1}}。