封裝是面向對象方法的重要原則,就是把對象的屬性和操做(或服務)結合爲一個獨立的總體,並儘量隱藏對象的內部實現細節。程序員
先來個例子看看;ide
public class Manthis
{spa
//對屬性的封裝,一我的的姓名,年齡,妻子都是這個對象(人)的私有屬性對象
private String name;get
private int age;it
private Woman wife;class
//對該人對外界提供方法的封裝,能夠設定妻子,姓名,年齡也能夠得到男人的姓名和年齡
// 方法封裝
public void setWife(Woman wife) {
this.wife = wife;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}程序
}方法
上面的例子仔細看就會發現,Man類沒有提供getWife的方法,這是由於男人不想讓本身的妻子被外界訪問,接下來呢,就是封裝能夠把一個對象的屬性私有,而提供一些能夠被外界訪問的屬性的方法,好比說,name屬性,Man和Woman類都有相應的get和set方法,外界均可以經過這些方法訪問和修改,同時對一些對象不想讓外界訪問的屬性,就不提供其方法,好比說Man的wife屬性,就沒有get方法,外界是不能獲得Man類的wife屬性的。
封裝的做用:
1,對象的數據封裝特性完全消除了傳統結構方法中數據與操做分離所帶來的種種問題,提升了程序的可複用性和可維護性,下降了程序員保持數據與操做內容的負擔。
2,對象的數據封裝特性還能夠把對象的私有數據和公共數據分離開,保護了私有數據,減小了可能的模塊間干擾,達到下降程序複雜性、提升可控性的目的。