java内部类的同名变量访问

java内部类的同名变量访问

格式是:

外部类名称.this.外部类成员变量名

声明内部类对象:

外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package cn.itcast.day11.demo03;

// 如果出现了重名现象,那么格式是:外部类名称.this.外部类成员变量名
public class Outer {

int num = 10; // 外部类的成员变量

public class Inner /*extends Object*/ {

int num = 20; // 内部类的成员变量

public void methodInner() {
int num = 30; // 内部类方法的局部变量
System.out.println(num); // 局部变量,就近原则
System.out.println(this.num); // 内部类的成员变量
System.out.println(Outer.this.num); // 外部类的成员变量
}

}

}
1
2
3
4
5
6
7
8
9
10
11
package cn.itcast.day11.demo03;

public class Demo02InnerClass {

public static void main(String[] args) {
// 外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();
Outer.Inner obj = new Outer().new Inner();
obj.methodInner();
}

}