請問 可以這樣嗎
內部類Outer和外部類Inner具有相同的成員變量b的情況下,內部類要訪問外部的成員變量,可以不使用this關鍵字直接這樣寫嗎
? ? ? ? System.out.println(Outer.b);
還是一定要 System.out.println(Outer.this.b);
為什么呢?難道Outer.b不是已經很清楚地指出是訪問Outer里的成員變量了嗎
內部類Outer和外部類Inner具有相同的成員變量b的情況下,內部類要訪問外部的成員變量,可以不使用this關鍵字直接這樣寫嗎
? ? ? ? System.out.println(Outer.b);
還是一定要 System.out.println(Outer.this.b);
為什么呢?難道Outer.b不是已經很清楚地指出是訪問Outer里的成員變量了嗎
2016-05-16
舉報
2016-05-16
雖然看起來是正確的,但是實際上Outer.b它所代表的是兩個變量,一個是Outer的變量b,一個是Inner的變量b。因為這兩個b都在Outer這個類里面。所以當你這樣表示之后,根據臨近原則。Outer.b所代表的變量就成了Inner的變量b。因而這也是為什么要加this的原因。就是為了避免臨近原則。
2016-07-07
除非Outer的b是static 變量,否則是不能用Outer.b直接訪問的。
2016-06-17
可以的