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