在面向對象程式設計方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實現細節部份包裝、隱藏起來的方法。安全
封裝能夠被認爲是一個保護屏障,防止該類的代碼和數據被外部類定義的代碼隨機訪問。this
要訪問該類的代碼和數據,必須經過嚴格的接口控制。spa
封裝最主要的功能在於咱們能修改本身的實現代碼,而不用修改那些調用咱們代碼的程序片斷。設計
適當的封裝能夠讓程式碼更容易理解與維護,也增強了程式碼的安全性。code
1. 良好的封裝可以減小耦合。對象
2. 類內部的結構能夠自由修改。blog
3. 能夠對成員變量進行更精確的控制。接口
4. 隱藏信息,實現細節。get
1. 修改屬性的可見性來限制對屬性的訪問(通常限制爲private),例如:io
1 public class Person { 2 private String name; 3 private int age; 4 }
這段代碼中,將 name 和 age 屬性設置爲私有的,只能本類才能訪問,其餘類都訪問不了,如此就對信息進行了隱藏。
2. 對每一個值屬性提供對外的公共方法訪問,也就是建立一對賦取值方法,用於對私有屬性的訪問,例如:
1 public class Person{ 2 private String name; 3 private int age; 4 5 public int getAge(){ 6 return age; 7 } 8 9 public String getName(){ 10 return name; 11 } 12 13 public void setAge(int age){ 14 this.age = age; 15 } 16 17 public void setName(String name){ 18 this.name = name; 19 } 20 }
採用 this 關鍵字是爲了解決實例變量(private String name)和局部變量(setName(String name)中的name變量)之間發生的同名的衝突。