为什么内部类可以直接访问外部类的成员呢?
因为内部类持有了外部了的引用, 外部类名.this
package Polymorphic;
public class day_4_7 {
public static void main(String[] args) {
new Fu().test1();
}
}
class Fu{
int i =3;
class Inner{
int i=4;
void test(){
int i=5;
//结果为:5
System.out.println("测试数:"+i);
//结果为:4
System.out.println("测试数:"+this.i);
//结果为:4
System.out.println("测试数:"+Inner.this.i);
//结果为:3
System.out.println("测试数:"+Fu.this.i);
}
}
public void test1(){
new Inner().test();
}
}
结果:
测试数:5
测试数:4
测试数:4
测试数:3