//如果出现了重名现象,那么格式是:外部类名称。this。外部类成员变量名
public class Outer {
int num=10;//外部类的成员变量
public class Inner{//内部类的成员变量
int num=20;
public void methodInner() {
int num=30;//内部类方法的局部变量
System.out.println(num);//局部变量,就近原则 30
System.out.println(this.num);//内部类的成员变量 20
System.out.println(Outer.this.num);//外部类的成员变量 10
}
}
}
public static void main(String[] args) {
//外部类名称。内部类名称 对象名= new 外部类名称()。new 内部类名称();
Outer.Inner obj = new Outer().new Inner();
obj.methodInner();
}
结果:
30
20
10