Java——類成員的訪問許可權修飾符(private、protected、public、default)
阿新 • • 發佈:2018-11-15
-
封裝將資料和操作連線起來。封裝的一個重要屬性:訪問控制。
-
通過封裝可以控制程式的某個部分所能訪問類的成員,防止物件濫用。從而保護物件中資料的完整性。
-
在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 | 允許訪問 | – | – | – |