1个回答
展开全部
内部类不能是静态内部类!
非静态的内部类在编译后会有外部类对象的引用,所以构造这种内部类必须先构造外部对象,再用外部对象构造内部对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @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)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询