内部类Outer和外部类Inner具有相同的成员变量b的情况下,内部类要访问外部的成员变量,可以不使用this关键字直接这样写吗
System.out.println(Outer.b);
还是一定要 System.out.println(Outer.this.b);
为什么呢?难道Outer.b不是已经很清楚地指出是访问Outer里的成员变量了吗
虽然看起来是正确的,但是实际上Outer.b它所代表的是两个变量,一个是Outer的变量b,一个是Inner的变量b。因为这两个b都在Outer这个类里面。所以当你这样表示之后,根据临近原则。Outer.b所代表的变量就成了Inner的变量b。因而这也是为什么要加this的原因。就是为了避免临近原则。
除非Outer的b是static 变量,否则是不能用Outer.b直接访问的。
可以的