java - 為什么此私有靜態(tài)變量能被訪問(wèn)呢?
問(wèn)題描述
class Test{ private static int i = 1;public static void main(String[] args){Test test = new Test();System.out.println(test.i); //此處為何能訪問(wèn)到私有的i變量呢? }}
如果與Test類不同包,調(diào)用i變量卻報(bào)錯(cuò),為何?
問(wèn)題解答
回答1:因?yàn)閙ain函數(shù)也是Test類的靜態(tài)函數(shù)
回答2:給你這個(gè)圖片吧。你可以看看,尤其要注意protected與缺省之間的區(qū)別。
private關(guān)鍵字的意思是除了包含這個(gè)成員的類之外,其他類都沒(méi)法訪問(wèn)這個(gè)成員,包括同處于這個(gè)包內(nèi)的其他類。所以不僅是不同包,相同的包也無(wú)法訪問(wèn)。
回答4:如果這都不行,private修飾的變量還有什么用?
回答5:當(dāng)前類為何不行?
回答6:如果不行的話,那i在哪用的,豈不是白白聲明一個(gè)i啊。還有private是其他類調(diào)用Test類的 i 是不能調(diào)用的,本類不受限制的。
回答7:顯然你要重新學(xué)習(xí):public private static protected 這四個(gè)在面向?qū)ο缶幊痰某S眯揎椃?/p>回答8:
由于i是static,所以test.i(實(shí)例.靜態(tài)變量)等價(jià)于Test.i(類.靜態(tài)變量),i又是private,所以只能在Test類內(nèi)被訪問(wèn)。
回答9:這個(gè)是一個(gè)編程的基礎(chǔ)問(wèn)題。希望再去看一下定義和范圍。
回答10:因?yàn)閜rivate修飾的變量可以在本類中被訪問(wèn),這是關(guān)于訪問(wèn)修飾符的問(wèn)題。
相關(guān)文章:
1. java - 如何用圖畫的方式有效地表示多線程?2. bootstrp是col-md-12列的,只有col-md-10有內(nèi)容,可以讓沒(méi)有內(nèi)容的不占據(jù)位置嗎;3. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!4. python - Fiddler+Android模擬器抓取app,json數(shù)據(jù)被加密了,如何解析?5. html5 - 剛接觸H5,為什么我覺(jué)得很多標(biāo)簽都沒(méi)什么用呢?6. windows C++ 一般使用什么技術(shù)調(diào)用Webservice接口7. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.8. javascript - 小程序中遇到j(luò)s執(zhí)行時(shí)序問(wèn)題9. java-ee - JAVA8 lambdas表達(dá)式 改變外面變量的值10. html - eclipse 標(biāo)簽錯(cuò)誤
