定義:封裝(英語:Encapsulation)是指一種將抽象性函式接口的實現細節部份包裝、隱藏起來的方法。將引用類型數據或基於數據的操作封裝在一起,使其構成一個不可分割的獨立實體,數據被保護在抽象數據類型的內部,儘可能地隱藏內部的細節,只保留一些對外接口使之與外部發生聯繫。
好處:
1、良好的封裝能夠減少耦合。(比如日後突然要修改屬性age爲String類型,無需修改所有調用該方法的代碼,只需在修改在封裝類中修改age的類型,然後set方法內部進行處理this.age=String.valueOf(age))。
2、類內部的結構可以自由修改。
3、可以對成員進行更精確的控制。(比如可以在其他對象調用set方法修改屬性對修改內容進行處理)
4、隱藏信息,實現細節。(通過權限修飾符來隱藏成員如private)
例子:
第一步,通過將類的屬性的訪問權限設置爲private對屬性進行保護和隱藏。
第二步,通過public的get,set方法允許和控制其他對象訪問和修改本對象內部屬性。
public class Person {
private String name;
private int age;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public void setName(String name){
this.name = name;
}
}