Java基礎知識回顧之封裝性
阿新 • • 發佈:2018-12-08
Java基礎知識回顧之封裝性
Java基礎知識回顧之繼承性
Java基礎知識回顧之多型性
理解封裝性
封裝(Encapsulation)是面向物件的三大特徵之一(另外兩個是繼承性和多型性),它是指的是將物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問物件內部資訊,而是通過該類所提供的方法來實現對內部資訊操作與訪問。
封裝是面向物件程式語言對客觀世界的模擬,在客觀世界裡,物件的狀態資訊都被隱藏在物件內部,外界無法直接操作和修改。
封裝性的好處:
- 隱藏類的實現細節
- 讓使用者只能通過實現預定的方法來訪問資料,從而可以在該方法里加入控制邏輯,限制對成員變數的不合理訪問。
- 可進行資料檢查,從而有利於保證物件資訊的完整性。
- 便於修改,提高程式碼的可維護性。
public class Person {
// 將屬性封裝起來-私有化
private String rPerson;
// 對外提供訪問的方法
public String getrPerson() {
return rPerson;
}
public void setrPerson(String rPerson) {
this.rPerson = rPerson;
}
}
Java 中類成員的訪問控制權限
在 JAVA 中有四種訪問控制權限,分別為:private, default, protected, public
- private。私有的成員變數或者方法。只能在本類中使用。
- default。預設的成員變數或者方法。可以在這個包中的其他類訪問(包括包中的子類,以及包中所有類訪問)。如果子類在不同包,則不能訪問。
- protected。受保護的成員變數或者方法。成員既可以被這個包中其它類訪問,也可以被不同包中的子類內部訪問。
- public。公共的成員或者方法。訪問不受限制。
總結
訪問許可權 | private | default | protected | public |
---|---|---|---|---|
本類內部可訪問 | √ | √ | √ | √ |
同一包中的類(包括子類,以及以物件.成員) | √ | √ | √ | |
其它包中的子類內部 | √ | √ | ||
其它包中的類(物件.成員, 不是子類) | √ |