请问 可以这样吗

来源:7-6 Java 中的成员内部类

MiaLoo

2016-05-16 18:43

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

        System.out.println(Outer.b);

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

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

写回答 关注

3回答

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

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

    MiaLoo

    谢谢你噢~讲得好清楚

    2016-05-16 19:10:16

    共 1 条回复 >

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

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

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

    可以的


Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530554 学习 · 6091 问题

查看课程

相似问题