/*
内部类的访问规则:
1,内部类可以直接访问外部类中的成员,包括私有。
之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外
部类的引用, 格式:外部类名。this。变量名;
2,外部类要访问内部类,必须建立内部类对象。
*/
class Outer {
private int x = 3;
class Inner { //定义一个内部类
private int x = 4;
void show() {
int x = 5;
System.out.println("x = " + x); //调用函数中的变量x
System.out.println("x = " + this.x); //调用内部类中的成员变量x.
System.out.println("x = " + Outer.this.x); //调用外部类中的成员变量
}
}
public void show() { //定义一个函数。调用内部类中的函数
Inner in = new Inner();
in.show();
}
}
class OuterDemo {
public static void main(String[] args) {
Outer ou = new Outer(); //建立外部类对象
ou.show(); //通过外部类函数调用内部类函数
Outer.Inner in = new Outer().new Inner(); //通过内部类名.外部类名建立内部类对象
in.show(); //通过内部类对象调用内部类函数
}
} |
|