关于java:java内部类

4次阅读

共计 670 个字符,预计需要花费 2 分钟才能阅读完成。

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

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

正文完
 0