动态成员类是最简略的一种嵌套类。和一般的外层类一样,只是碰巧被申明在另一个类的外部而已,而且还带有点非凡技能:能够拜访外层类的所有成员(包含公有的)。

非动态成员类的每个实例都隐含着与外层类的一个外层类实例(名为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