代码如下:return new InnerClass(32).m;竟然编译通过?
public class OuterClass {
private class InnerClass{
private int m;
InnerClass(int m){
this.m=m;
}
}
public OuterClass(){
}
public int outPut(){
return new InnerClass(32).m;
}
}
1、创建一个Bean1类,并建好两个私有变量和构造方法。
2、创建一个Bean2类,引入对应包,创建好main 方法。
3、创建 Class<?> clazz = Class.forName("test.Bean1")。
4、创建Bean1 bean = (Bean1) clazz.newInstance();Field[] fs = clazz.getDeclaredFields()。
5、创建for (Field field : fs) // 要设置属性可达,不然会抛出IllegalAccessException异常 field.setAccessible(true);// 打印初始值 System.out.println(field.getName() + "===" + field.get(bean));}。
6、执行main方法查看结果。
return new InnerClass(32).m;
这句代码指的是外部类的成员函数通过内部类的引用调用内部类的私有成员啊。。。。所以说外部类的成员函数可以访问内部类的私有成员?