- class Outer
- {
- int x=3;
- void methdo()
- {
- class Inner
- {
- int x=4;
- void function()
- {
- int x=5;
- System.out.println(Outer.this.x);//位置1
- }
-
- }
- new Inner().function();//位置2
- }
- }
- class InnerClassDemo3
- {
- public static void main(String args[])
- {
- new Outer().method();//位置3
- }
- }
复制代码
位置1处Outer.this.x表示的访问外部类的变量x,Outer.this是一个外部类的引用,Outer.this.x=3如果是this.x那么x=4,如果是x,那么x=5。
1,内部类可以直接访问外部类中的成员,包括私有,之所以可以直接访问外部类中的成员,因为内部类中持有一个外部类的引用。
2,外部类要访问内部类中的成员,必须要建立内部类的对象。 |