黑马程序员技术交流社区

标题: 这个是一个内部类中还有内部类的情况 [打印本页]

作者: lwj123    时间: 2014-12-18 10:17
标题: 这个是一个内部类中还有内部类的情况
这个是一个内部类中还有内部类的情况,当我在Inner1中访问Outer中的成员变量时为什么是Outer.this.num而不是Outer.Inner.this.num

System.out.println("访问的是Outer的num="+Outer.this.num);//7    为什么不是Outer.Inner.this.num

class Outer
{
    private int num = 7;
    private static int x = 8;
    class Inner
    {    int num = 9;
        void print(){
            System.out.println(x);
        }
        class Inner1
        {    int num = 10;
            public void method() {
                int num = 11;
                System.out.println("访问的是Inner1的method()"+num);//11
                System.out.println("访问的是Inner1的成员变量num:"+this.num);//10
                System.out.println("访问的是Inner1的num="+Inner1.this.num);//10
                System.out.println("访问的是Inner的num="+Inner.this.num);//9
                System.out.println("访问的是Outer的num="+Outer.this.num);//7  为什么不是Outer.Inner.this.num
            }
        }
    }
}
public class InnerClassDemo
{
    public static void main(String[] args)
    {
        Outer.Inner.Inner1 in = new Outer().new Inner().new Inner1();
        in.method();
    }
}



作者: Honelyboy    时间: 2014-12-18 19:57
我的理解是小数点相当于”的“,Outer.this.num就是Outer的对象的num,所以就是7.
作者: lwj123    时间: 2014-12-18 21:02
Honelyboy 发表于 2014-12-18 19:57
我的理解是小数点相当于”的“,Outer.this.num就是Outer的对象的num,所以就是7.

好的,我已经理解了。谢谢你




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2