国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

java基礎(chǔ)篇(一) ----- java面向?qū)ο蟮娜筇匦灾庋b

2019-11-14 23:44:43
字體:
供稿:網(wǎng)友
java基礎(chǔ)篇(一) ----- java面向?qū)ο蟮娜筇匦灾庋bjava面向?qū)ο蟮娜筇匦灾庋b:封裝(Encapsulation)是面向?qū)ο蟮囊粋€(gè)重要特征,就是把對(duì)象的屬性和操作(或服務(wù))結(jié)合為一個(gè)獨(dú)立的整體,并盡可能隱藏對(duì)象的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。通俗的講所謂封裝就是將屬性和方法捆綁到一起,封裝到一個(gè)對(duì)象中去,形成一個(gè)不可分割的獨(dú)立單位,以及盡可能隱藏對(duì)象的內(nèi)部結(jié)構(gòu),也就是說,如果我們使用了封裝技術(shù)的話,別人就只能用我們做出來的東西而看不見我們做的這個(gè)東西的內(nèi)部結(jié)構(gòu)了。如果形容一個(gè)人(假設(shè)把人看做一個(gè)類),我們可以用姓名、年齡,性別等來描述,如果不封裝我們需要三個(gè)變量來形容他,在面向?qū)ο笾锌梢杂靡粋€(gè)person類來封裝這些屬性,person具有三個(gè)成員變量 ,name,age,sex,創(chuàng)建的時(shí)候每當(dāng)生成一個(gè)這樣的類的對(duì)象,就具有這3個(gè)屬性。還可以這么想比如一部電腦主機(jī),他就是封裝起來,你可以通過一些方法改變他里面的狀態(tài),而又不需要了解他的原理,比如我按下開機(jī)鍵,我會(huì)知道我按下這個(gè)鍵,電腦就會(huì)啟動(dòng),而不需要了解他怎么運(yùn)行對(duì)于封裝而言,一個(gè)對(duì)象它所封裝的是自己的屬性和方法,所以它是不需要依賴其他對(duì)象就可以完成自己的操作。 什么是封裝?

封裝就是將屬性私有化,提供公有的方法訪問私有屬性。

做法就是:修改屬性的可見性來限制對(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í)改正!謝謝。

不為失敗找借口,只為成功找方法!?。。?p>


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 菏泽市| 越西县| 江川县| 宜阳县| 唐海县| 嘉鱼县| 宁安市| 麻阳| 利川市| 内丘县| 卫辉市| 芜湖县| 华安县| 凌海市| 哈密市| 油尖旺区| 望都县| 盐边县| 汝城县| 武义县| 瓦房店市| 汝州市| 石阡县| 齐齐哈尔市| 施秉县| 东丽区| 万安县| 开远市| 阜康市| 克拉玛依市| 庄河市| 双柏县| 黔江区| 上犹县| 阿鲁科尔沁旗| 新乡市| 芮城县| 遵义市| 永安市| 延安市| 于都县|