Java基礎:六、訪問許可權修飾詞 (2)

  • 2020 年 3 月 17 日
  • 筆記

訪問許可權控制的等級,從最大許可權到最小許可權依次為:public、protected、包訪問許可權(沒有關鍵詞)和private

這幾個訪問許可權修飾詞在使用時,是置於類中每個成員的定義之前的-無論它是一個域還是一個方法。每個訪問許可權修飾詞僅控制它所修飾的特定定義的訪問權

訪問許可權修飾詞

包訪問許可權

默認訪問許可權沒有任何關鍵字,但通過是指包訪問許可權。這意味著當前的包中的所有其他類對那個成員都有訪問許可權,但對於包之外的所有類,這個成員卻是private

public:介面訪問許可權

使用關鍵字pubcli,就意味著public之後緊跟著的成員聲明對所有使用者都是可用的。

默認包

兩個.java文件在定義處於相同的目錄並且沒有給自己設定任何包名稱,Java將這樣的文件自動看作是隸屬於該目錄的默認包之中

private:無法訪問

關鍵字private的意思是:除了包含該成員的類之外,其他任何類都無法訪問這個成員。

protected:繼承訪問許可權

對它的訪問許可權賦予派生類而不是所有類。並且相同包內的其他了成員可以訪問protected元素

介面和實現

訪問許可權的控制常被稱為是具體實現的隱藏。把數據和方法包裝進類中,以及具體實現的隱藏,常被通常稱為封裝,其結果是一個同時帶有特徵和行為的數據類型

出於兩個很重要的原因,訪問許可權控制將許可權的邊界劃在了數據類型的內部。第一個原因是要設定程式可使用和不可使用的界限。可以在結構中建立自己的內部機制。第二個原因是:將介面和具體實現進行分離。

類的訪問許可權

為了控制類某個類的訪問許可權,修飾詞必須出現於關鍵字class之前。

類既不可以是private的,也不可以是protected。所有對於類的訪問許可權,僅有兩個選擇:包訪問許可權或public。如果不希望其他任何人對該類擁有訪問許可權,可以把所有的構造器都指定為private,從而阻止任何人創建該類的對象。但是有一個例外,就是你在該類的static成員內部可以創建。

Tags: