課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
System.out.println("訪問外部類的score"+HelloWorld.score);
2017-12-10
源自:Java入門第二季 升級版 7-7
正在回答
靜態(tài)成員屬于整個類,即使沒有對象,靜態(tài)成員還是存在的。其他普通成員,只有創(chuàng)建相應(yīng)類對象的時候才會分配內(nèi)存,靜態(tài)成員在編譯時就會分配一個內(nèi)存,即使沒有對象,也可以用類名直接訪問。要注意的是,它只會占用一個內(nèi)存,所有當(dāng)有不同對象訪問靜態(tài)成員時,靜態(tài)成員的值都是一樣的,并且有一個對象改變了它的值,所有其他對象訪問該靜態(tài)成員時,都會顯示改變后的值
因?yàn)閮?nèi)類有權(quán)限訪問外部類中的所有數(shù)據(jù),加this是為了區(qū)分,相當(dāng)于對象名吧。之前加this因?yàn)閮?nèi)部類和外部類都有name,因?yàn)榉椒ň哂芯徒瓌t不加this關(guān)鍵字標(biāo)識的話,系統(tǒng)會直接取內(nèi)部類中的name。說白了就是為了能讓系統(tǒng)區(qū)分,HelloWorld.socre的意思是訪問HelloWorld類(外部類)中的Score變量,沒加this是因?yàn)橹挥幸粋€score不用區(qū)分。
因?yàn)橐呀?jīng)規(guī)定了外部類靜態(tài)成員與內(nèi)部類相同時,調(diào)用方法為“類名.靜態(tài)成員”,
你要問為什么,其實(shí)我也不知道,大概是靜態(tài)成員比較特殊吧
this是指當(dāng)前對象 ?一般 用于get ?set ?方法 ,成員變量和在方法中的局部變量命名相同是,需要在方法中使用成員變量需要使用 this。
這是我對this的理解。希望對你有幫助。
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙
3 回答為什么不能加this
1 回答System.out.println("外部類中的name:" +HelloWorld.this.name );為什么要加HelloWorld.直接用this不可以嗎?
3 回答為什么一些方法要加void,一些不加?
4 回答為什么這個外部類不用this
3 回答為什么訪問外部類的的name,this前不加外部類名,也能得到要的輸出。
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-04-03
靜態(tài)成員屬于整個類,即使沒有對象,靜態(tài)成員還是存在的。其他普通成員,只有創(chuàng)建相應(yīng)類對象的時候才會分配內(nèi)存,靜態(tài)成員在編譯時就會分配一個內(nèi)存,即使沒有對象,也可以用類名直接訪問。要注意的是,它只會占用一個內(nèi)存,所有當(dāng)有不同對象訪問靜態(tài)成員時,靜態(tài)成員的值都是一樣的,并且有一個對象改變了它的值,所有其他對象訪問該靜態(tài)成員時,都會顯示改變后的值
2017-12-15
因?yàn)閮?nèi)類有權(quán)限訪問外部類中的所有數(shù)據(jù),加this是為了區(qū)分,相當(dāng)于對象名吧。之前加this因?yàn)閮?nèi)部類和外部類都有name,因?yàn)榉椒ň哂芯徒瓌t不加this關(guān)鍵字標(biāo)識的話,系統(tǒng)會直接取內(nèi)部類中的name。說白了就是為了能讓系統(tǒng)區(qū)分,HelloWorld.socre的意思是訪問HelloWorld類(外部類)中的Score變量,沒加this是因?yàn)橹挥幸粋€score不用區(qū)分。
2017-12-12
因?yàn)橐呀?jīng)規(guī)定了外部類靜態(tài)成員與內(nèi)部類相同時,調(diào)用方法為“類名.靜態(tài)成員”,
你要問為什么,其實(shí)我也不知道,大概是靜態(tài)成員比較特殊吧
2017-12-10
this是指當(dāng)前對象 ?一般 用于get ?set ?方法 ,成員變量和在方法中的局部變量命名相同是,需要在方法中使用成員變量需要使用 this。
這是我對this的理解。希望對你有幫助。