静态成员类是最简单的一种嵌套类。和普通的外层类一样,只是碰巧被声明在另一个类的内部而已,而且还带有点特殊技能:可以访问外层类的所有成员(包括私有的)。
非静态成员类的每个实例都隐含着与外层类的一个外层类实例(名为this$0,静态的内部类没有)。在非静态成员类实例方法内部,可以调用外层类的方法,或者利用修饰过的this构造获得外层类实例的引用。
import java.lang.reflect.Field;
public class OutClass {
public static void main(String[] args) throws Exception{
Field[] fileds = InnerClass.class.getDeclaredFields();
InnerClass innerClass = new OutClass().new InnerClass();
for(Field field:fileds){
System.out.println(field.getName());
System.out.println(field.getType());
((OutClass)field.get(innerClass)).show();
}
}
class InnerClass{
public OutClass getOut(){
// 可以通过修饰的this获取外部类引用
return OutClass.this;
}
}
public void show(){
System.out.println(1);
}}
输出结果为
this$0
class innerClass.OutClass
1
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。