java内部类的实例化

刚开始学习java,写了几行代码就有错误。又没有直接搜到答案解决问题,因此记录。

内部类不能直接实例化,提示错误No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing

假设外部类叫Out,内部类叫In,那么我们可以使用Out.In in = new Out().new In()来实例化内部类的对象,具体示例代码如下:


class Out {
private int age = 12;

class In {
private int age = 13;
public void print() {
int age = 14;
System.out.println("局部变量:" + age);
System.out.println("内部类变量:" + this.age);
System.out.println("外部类变量:" + Out.this.age);
}
}
}

public class Demo {
public static void main(String[] args) {
Out.In in = new Out().new In();
in.print();
}

}

原作百度知道samismiling

你可能感兴趣的:(java)