java-學(xué)習(xí)筆記-訪問權(quán)限修飾詞一
時間:2016-12-14作者:華清遠(yuǎn)見
Public、protected和private public protected和private是java訪問權(quán)限修飾詞,在使用的時,置于類中的每個成員定義之前,無論是一個域還是一個方法。如果不提供任何訪問權(quán)限修飾詞,則意味著它是“包訪問權(quán)限”。包訪問權(quán)限意味著,當(dāng)前包中的所有其他類對那個成員都有訪問權(quán)限。但是對于這個包之外的所有類,這個成員是private的。對于處于相同目錄并且沒有給自己設(shè)定任何包名稱的文件,java自動將它們看作隸屬于該目錄的默認(rèn)包中,于是它們?yōu)樵撃夸浿兴衅渌奈募继峁┝税L問權(quán)限。 public 一個成員是public的,無論是誰,無論在哪里,都可以訪問該成員。 java編程思想對類訪問權(quán)限的描述: 1. 對于每個編譯單元(文件)都只能有一個public類。這表示,每個編譯單元都有單一的公共接口,用public類來表現(xiàn)。如果某個編譯單元中有一個以上的public類,編譯器就會報錯。 2. 在java代碼組織中,假設(shè)文件名為MyClass.java,那么意味這在這個文件中的public類名稱必須是MyClass。若名稱不匹配,編譯器同樣會報錯的。 3. 每個編譯單元中,也是可以完全不帶public類的。這種情況下,可以隨意對文件命名(但是會對閱讀和維護(hù)產(chǎn)生影響)(參考://blog.csdn.net/bareheadzzq/article/details/6562211) ·protected 繼承而來的類,是可以訪問protected成員的。private 只有自己類,才可以訪問自己類中的private類型的域和方法。 private 關(guān)鍵字private的意思是,除了包含該成員的類之外,其他任何類都無法是訪問到這個成員。 處于同一個包內(nèi)的其他類都無法訪問private成員的。因此等于說自己隔離了自己。 訪問權(quán)限的控制常被成為是具體實現(xiàn)的隱藏。把數(shù)據(jù)和方法包裝進(jìn)類中,以及具體實現(xiàn)的隱藏,常共同稱為封裝。其結(jié)果是一個同時帶有特征和行為的數(shù)據(jù)類型。 類訪問權(quán)限 訪問權(quán)限修飾詞也可以作用與類,若希望某個類可以為某個客戶端程序員使用,就可以把public作用于整個類的定義。 額外的限制:每個編譯單元(文件)都只能有一個public類。這表示,每個編譯單元都有單一的公共接口,用public類來表現(xiàn)。一個編譯單元擁有一個以上的public類,編譯器就會報錯。pubilic類的名稱必須和文件名相同。 注意:類既不可以是一個private類型的(這樣就導(dǎo)致出類這個類,其他類都無法訪問它),也不可以是一個protected類型。對于類的訪問權(quán)限,只有兩種選擇:包訪問權(quán)限和public類型。如果不希望別人對該類擁有訪問權(quán)限,可以把所有的構(gòu)造其設(shè)置為private類型的,從而阻止別人創(chuàng)建這個類的對象。除非你是這個類的static方法,在內(nèi)部就可以創(chuàng)建它。 控制對成員的訪問權(quán)限有兩個原因: 1 是為了是用戶不要觸碰那些他們不該觸碰的部分。這些部分對于類內(nèi)部的操作是必要的,但不屬于客戶端程序員所需要的接口。指定為private,對于客戶端程序員來說,可以清楚的了解什么是他們應(yīng)該注意的,什么是應(yīng)該忽視的。 2 更為重要的原因是,為了讓類庫設(shè)計者可以更改類的內(nèi)部工作方式,而不必?fù)?dān)心這樣做會對客戶端程序員會產(chǎn)生重大的影響。如果接口和實現(xiàn)可以被明確的隔離和保護(hù),那么就客戶端程序員就可以不用重寫代碼。
相關(guān)資訊
發(fā)表評論
|