1. 程式人生 > >Java——類成員的訪問許可權修飾符(private、protected、public、default)

Java——類成員的訪問許可權修飾符(private、protected、public、default)

  • 封裝將資料和操作連線起來。封裝的一個重要屬性:訪問控制。

  • 通過封裝可以控制程式的某個部分所能訪問類的成員,防止物件濫用。從而保護物件中資料的完整性。

  • 在Java中類的每個成員(資料成員和成員方法)都有一個成為可訪問性的屬性,用來保護類成員。

Java中有四類成員的保護方式:private(私有的)、protected(保護的)、public(共有的)default(包訪問許可權)。

1.private 實現封裝(私有的)

(最嚴格) 只能被這個類本身訪問,其他情況如同一包內的類、子類等都無法訪問。

  • 將屬性,方法用private封裝後表示,被封裝的屬性與方法只能在本類中使用,類外部不可見。 此時要想訪問被封裝的屬性,必須提供getter 與 setter 方法. 不能用於外部類(最頂層的類),可以用於內部類的巢狀。
  • getter方法:主要進行屬性內容的取得。public void setName(string n) 對name的set方法。
  • setter方法:主要進行屬性內容的設定與修改。
  • 類的設計原則:編寫類的時候,沒有額外說明,所有屬性必須使用private封裝(成員變數)

2.protected(保護的):

同一包內的類以及其子類可以訪問。

這裡需要說明,包內的類(其他類和子類);子類(包內的和包外的),所以同一包內的類和子類其實是有交集的——包內的子類。

3.public(公共的):

(最不嚴格),任何類都可以訪問該成員。

4.default(預設的):

類中不加任何訪問許可權限定的成員屬於預設的訪問狀態。
可以被這個類本身以及同一個包中的類訪問。
包內的類包括其子類,但是包外的類一律無法訪問。

訪問許可權修飾符總結表:

修飾符 同一個類 同一個包 子類 所有類
public 允許訪問 允許訪問 允許訪問 允許訪問
protected 允許訪問 允許訪問 允許訪問
default 允許訪問 允許訪問
private 允許訪問