静态成员类是最简单的一种嵌套类。和普通的外部类一样,它恰好声明在另一个类内部,它还有一个小技巧:可以访问外部类的所有成员(包括私有成员)。非静态成员类的每个实例都与外部类的外部类实例隐式相关(名为this$0,而静态内部类则没有)。在非静态成员类的实例方法内部,可以调用外部类的方法,或者使用修饰过的this结构来获取外部类实例的引用。导入java.lang.reflect.Field;公共类OutClass{publicstaticvoidmain(String[]args)throwsException{Field[]fileds=InnerClass.class.getDeclaredFields();InnerClassinnerClass=newOutClass().newInnerClass();for(Fieldfields:fields){System.out.println(field.getName());System.out.println(field.getType());((OutClass)field.get(innerClass)).show();}}classInnerClass{publicOutClassgetOut(){//可以通过修饰的this获取外部类引用returnOutClass.this;}}publicvoidshow(){System.out.println(1);}}this$0classinnerClass.OutClass1的输出结果
