封裝就是將屬性私有化,提供公有的方法訪問私有屬性。
做法就是:修改屬性的可見性來限制對(duì)屬性的訪問,并為每個(gè)屬性創(chuàng)建一對(duì)取值(getter)方法和賦值(setter)方法,用于對(duì)這些屬性的訪問。
如:PRivate String name;
public String getName(){
return;
}
public void setName(String name){
this.name=name;
}
為什么要封裝、封裝有什么作用?
通過封裝,可以實(shí)現(xiàn)對(duì)屬性的數(shù)據(jù)訪問限制,同時(shí)增加了程序的可維護(hù)性 ;
由于取值方法和賦值方法隱藏了實(shí)現(xiàn)的變更,因此并不會(huì)影響讀取或修改該屬性的類,避免了大規(guī)模的修改,程序的可維護(hù)性增強(qiáng)。
對(duì)象的數(shù)據(jù)封裝特性還可以把對(duì)象的私有數(shù)據(jù)和公共數(shù)據(jù)分離開,保護(hù)了私有數(shù)據(jù),減少了可能的模塊間干擾,達(dá)到降低程序復(fù)雜性、提高可控性的目的。
封裝的好處與具體實(shí)現(xiàn)步驟
*實(shí)現(xiàn)封裝的步驟:(1)修改屬性的可見性來限制對(duì)屬性的訪問。(2)為每個(gè)屬性創(chuàng)建一對(duì)賦值方法和取值方法,用于對(duì)這些屬性的訪問。(3)在賦值和取值方法中,加入對(duì)屬性的存取限制。**為了實(shí)現(xiàn)良好的封裝性,我們通常將類的成員變量聲明為private,再通過public的方法來對(duì)這個(gè)變量進(jìn)行訪問。對(duì)一個(gè)變量的操作,一般都有讀取和賦值操作,我們分別定義兩個(gè)方法來實(shí)現(xiàn)這兩種操作,一個(gè)getXxx( )(Xxx表示要訪問的成員變量的名字),用來讀取這個(gè)成員變量操作,另外一個(gè)是setXxx()用來對(duì)這個(gè)成員變量賦值。**如果外面的程序可以隨意修改一個(gè)類的成員變量,會(huì)造成不可預(yù)料的程序錯(cuò)誤,就象一個(gè)人的身高,不能被外部隨意修改,只能通過各種攝取營(yíng)養(yǎng)的方法去修改這個(gè)屬性。
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;
}}
****封裝的優(yōu)點(diǎn):(1)隱藏類的實(shí)現(xiàn)細(xì)節(jié),良好的封裝能夠減少耦合;(2)讓使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯,限制對(duì)屬性的不合理操作,保證了程序的安全性;(3)便于修改,增強(qiáng)代碼的可維護(hù)性;
參考資料:http://blog.csdn.net/chenssy/article/details/12757911(在此處學(xué)習(xí)不少感謝
)
本人學(xué)習(xí)總結(jié)所用,如有紕漏錯(cuò)誤之處請(qǐng)指正,定虛心學(xué)習(xí)改正!謝謝。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注