當前位置:首頁 » 文件傳輸 » 4種控制訪問級別
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

4種控制訪問級別

發布時間: 2023-08-30 09:25:13

❶ 下面哪些關鍵字能用來控制對類成員的訪問

JAVA中使用如下關鍵字public、protected、private能用來控制對類成員的訪問:

1. 類的訪問控制符有兩種:public, default(默認的,什麼都不用寫)
default就是包內訪問控制符。
當然對於內部類還可以有static修飾,而用static修飾的內部類叫作嵌套類。
2. 屬性和方法的訪問控制符有四種:private, default, protected, public
可以用如下的表描述:(Yes表示可訪問,空表示不可訪問)

3. 其它:java的訪問控制級別分類:類訪問控制級別,對象訪問控制級別。

❷ Java的訪問控制許可權有哪幾種試以類格式形式列出Java的訪問控制。

訪問許可權的等級最大到最小依次是:public,protected,包訪問許可權(無關鍵字)和private。

成員的訪問許可權取得對某成員(屬性和方法)的實現方法有下面四種情況

1, 許可權設置為public; 2, 默認包訪問許可權,在同一包中的其他類,可以訪問; 3, 許可權設置為public或者protected,通過繼承的子類可以訪問; 4, 設置為private,提供訪問器和變異器方法(get/set);

下面介紹這四種許可權(相對成員而言)

1, 包訪問許可權,在同一包中的類可以訪問; 2, Public:介面訪問許可權,任何類都可以訪問; 3, Private:你無法訪問,除了包含該成員的類,其他類都可以訪問。 4, Protected:繼承訪問許可權,包括包訪問許可權。在同一包中,還有就是子類可以訪問。

類的訪問許可權類的訪問

只有兩種:包訪問許可權或public(用法同上) 如果不希望其他類擁有該類的訪問許可權,可以把這個來說有的構造器制定為private(比如單列模式)。

❸ java中的四種訪問許可權是

1,public 2,protected 3,(default) 4,private
1任何類都可以訪問
2在同一個包中的所有類可以訪問,以及該類的子類
3同一個包中的所有類
4隻能在本類中訪問

❹ java 的訪問修飾符是什麼

Java中的訪問修飾符

Java面向對象的基本思想之一是封裝細節並且公開介面。Java語言採用訪問控制修飾符來控制類及類的方法和變數的訪問許可權,從而向使用者暴露介面,但隱藏實現細節。訪問控制分為四種級別:

(1)public: 用public修飾的類、類屬變數及方法,包內及包外的任何類(包括子類和普通類)均可以訪問;

(2)protected: 用protected修飾的類、類屬變數及方法,包內的任何類及包外那些繼承了該類的子類才能訪問(此處稍後解釋),protected重點突出繼承;

(3)default: 如果一個類、類屬變數及方法沒有用任何修飾符(即沒有用public、protected及private中任何一種修飾),則其訪問許可權為default(默認訪問許可權)。默

認訪問許可權的類、類屬變數及方法,包內的任何類(包括繼承了此類的子類)都可以訪問它,而對於包外的任何類都不能訪問它(包括包外繼承了此類的子類)。default重點突出包;

(4)private: 用private修飾的類、類屬變數及方法,只有本類可以訪問,而包內包外的任何類均不能訪問它。

網上一些資料及一些書上用表格對java訪問修飾符做了清楚的總結,如下表所示:

重要總結:通過上面的分析,我們可以看到:

1.public、private和protected對我們來說沒有任何異議。

2. 頂層類只能用public訪問修飾符和default(默認)訪問修飾符修飾,其中用默認修飾符修飾的類(及沒有任何修飾符的類,如class B{})不能被其他包中的類繼承,這也說明了default(默認)訪問修飾符突出的是包許可權

3. protected:本人做了一次實驗,發現在不同包的子類中,new一個父類對象,並用該父類對象去訪問父類中的用protected修飾的類屬變數和方法時不能訪問,而new一個子類對象時,子類對象可以訪問(說明protected修飾的類可以被其他包中的類繼承)。也可以在子類重寫父類的方法中使用super關鍵字調用。這豈不是和上面表格中的總結(紅色對勾)沖突了?本人也是百思不得其解。最後在網上找到了一個相對比較認可的解釋,如下:

protected修飾符的修飾的成員變數和方法也稱為受保護的成員變數和方法, 受保護的成員變數和方法可以在本類或同一個包中的其它類(包括子類)中通過類的實例進行訪問,也可以被同一個包中的類或不同包中的類繼承,但是不能在不同包中的其它類(包括子類)中通過類的實例進行訪問。

4. 如果一個類使用public修飾,那該類的類名必須與他所在的源文件名相同。一個.java源文件中有且只有一個public類,頂層類只能用public和默認修飾符(即無修飾符)修飾;

5.final修飾的類不能被繼承,沒有子類。

6.abstract修飾的類不能被實例化,必須被子類繼承。類只要有一個抽象方法就必定是抽象類,但抽象類不一定要有抽象方法。

最終總結,就一句話:protected修飾符所修飾的類(這句話中指父類)屬成員變數和方法,只可以被子類訪問,而不管子類是不是和父類位於同一個包中。default修飾符所修飾的類屬成員變數和方法,只可被同一個包中的其他類訪問,而不管其他類是不是該類的子類。protected屬於子類限制修飾符,而default屬於包限制修飾符。