问答详情
源自:7-6 Java 中的成员内部类

请问 可以这样吗

内部类Outer和外部类Inner具有相同的成员变量b的情况下,内部类要访问外部的成员变量,可以不使用this关键字直接这样写吗

        System.out.println(Outer.b);

还是一定要 System.out.println(Outer.this.b);

为什么呢?难道Outer.b不是已经很清楚地指出是访问Outer里的成员变量了吗

提问者:MiaLoo 2016-05-16 18:43

个回答

  • 慕粉3122566
    2016-05-16 18:56:08
    已采纳

    虽然看起来是正确的,但是实际上Outer.b它所代表的是两个变量,一个是Outer的变量b,一个是Inner的变量b。因为这两个b都在Outer这个类里面。所以当你这样表示之后,根据临近原则。Outer.b所代表的变量就成了Inner的变量b。因而这也是为什么要加this的原因。就是为了避免临近原则。

  • tlojy
    2016-07-07 13:06:52

    除非Outer的b是static 变量,否则是不能用Outer.b直接访问的。

  • JeremyLin_
    2016-06-17 17:41:09

    可以的