深入理解Java中为什么内部类可以访问外部类的成员
1个回答
展开全部
内部类不能是静态内部类!
非静态的内部类在编译后会有外部类对象的引用,所以构造这种内部类必须先构造外部对象,再用外部对象构造内部对象。
@Test
public void testNested() {
Clazz obj = new Clazz();
Nested nested = obj.new Nested();
nested.print();
}
class Clazz {
Integer id;
class Nested {
String name;
public void print() {
System.out.println(id);
}
}
}
注意nested对象的this$1成员变量,类型是外部类,对象id和obj的id是相同的(id=49)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询