变量重名
变量的使用规则:就近原则
第一种情况:局部变量和成员变量重名,使用this关键字
访问成员变量
第二种情况:子类成员变量和父类成员变量重名,使用super关键字
访问父类成员变量
// 父类
public class Fu {int num = 10;
}// 子类
public class Zi extends Fu {int num = 20;public void method() {int num = 30;System.out.println(num); // 30System.out.println(this.num); // 20System.out.println(super.num); // 10}
}
第三种情况:内部类成员和外部类成员重名,使用外部类名.this.外部类成员名
访问外部类成员
!! 静态内部类只能访问外部类的静态成员
-
外部类实例成员:外部类名.this.外部类成员名
-
外部类静态成员:外部类名.外部类成员名,推荐
public class Outer { // 外部类// private 保护数据的安全性// static 让数据访问更加方便private static int num = 10;public class Inner /*extends Object*/ { // 内部类private int num = 20; public void method() {int num = 30; System.out.println(num); // 30System.out.println(this.num); // 20System.out.println(Outer.num); // 10System.out.println(Outer.this.num); // 10}}
}