封裝就是將屬性私有化,提供公有的方法訪問私有屬性。
做法就是:修改屬性的可見性來限制對屬性的訪問,並為每個屬性創建一對取值(getter)方法和賦值(setter)方法,用於對這些屬性的訪問。
如:private String name;
public String getName(){
return;
}
public void setName(String name){
this.name=name;
}
為什么要封裝、封裝有什么作用?
通過封裝,可以實現對屬性的數據訪問限制,同時增加了程序的可維護性 ;
由於取值方法和賦值方法隱藏了實現的變更,因此並不會影響讀取或修改該屬性的類,避免了大規模的修改,程序的可維護性增強。
對象的數據封裝特性還可以把對象的私有數據和公共數據分離開,保護了私有數據,減少了可能的模塊間干擾,達到降低程序復雜性、提高可控性的目的。
封裝的好處與具體實現步驟
*實現封裝的步驟:
(1)修改屬性的可見性來限制對屬性的訪問。
(2)為每個屬性創建一對賦值方法和取值方法,用於對這些屬性的訪問。
(3)在賦值和取值方法中,加入對屬性的存取限制。
**為了實現良好的封裝性,我們通常將類的成員變量聲明為private,再通過public的方法來對這個變量進行訪問。對一個變量的操作,一般都有讀取和賦值操作,我們分別定義兩個方法來實現這兩種操作,一個getXxx( )(Xxx表示要訪問的成員變量的名字),用來讀取這個成員變量操作,另外一個是setXxx()用來對這個成員變量賦值。**如果外面的程序可以隨意修改一個類的成員變量,會造成不可預料的程序錯誤,就象一個人的身高,不能被外部隨意修改,只能通過各種攝取營養的方法去修改這個屬性。
public class AccpTeacher{
private String name;
private int age;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return name;
}
public void setName(String age){
if(age>200){
System.out.println("年齡不符合,太大!");
}else{
this.age = age;
}
}
****封裝的優點:
(1)隱藏類的實現細節,良好的封裝能夠減少耦合;
(2)讓使用者只能通過事先定制好的方法來訪問數據,可以方便地加入控制邏輯,限制對屬性的不合理操作,保證了程序的安全性;
(3)便於修改,增強代碼的可維護性;
參考資料:http://blog.csdn.net/chenssy/article/details/12757911(在此處學習不少感謝
)
本人學習總結所用,如有紕漏錯誤之處請指正,定虛心學習改正!謝謝。
不為失敗找借口,只為成功找方法!!!!
