IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
日常生活中可以看到很多的汽車(chē),汽車(chē)包括車(chē)輪、發(fā)動(dòng)機(jī)、車(chē)架等零部件�?梢栽谲�(chē)架上安裝車(chē)輪,然后安裝發(fā)動(dòng)機(jī),最后安裝其他零件,刷漆。就形成了汽車(chē)。這個(gè)過(guò)程,是把各種零件放到車(chē)架上的過(guò)程。但思考一下,對(duì)于開(kāi)車(chē)的人,需要關(guān)注車(chē)的內(nèi)部結(jié)構(gòu)嗎?答案顯然是否定的。汽車(chē)對(duì)外提供了方向盤(pán)、油門(mén)等去調(diào)用內(nèi)部結(jié)構(gòu)從而進(jìn)行行駛。由這個(gè)例子可以總結(jié)出,汽車(chē)就是各種零件經(jīng)過(guò)封裝得到的產(chǎn)物,同時(shí)提供給駕駛?cè)瞬倏仄?chē)需要的接口設(shè)備。這就是生活中的封裝。
我們可以看到生活中的封裝有很多好處。具體有如下的幾條好處:
①隱藏了實(shí)現(xiàn)細(xì)節(jié),在使用時(shí)沒(méi)必要關(guān)注具體實(shí)現(xiàn)。
②安全性好,內(nèi)部細(xì)節(jié)隱藏了,就不能隨意破壞。
③對(duì)外提供接口方便使用。
④可維護(hù)性好,方便修改實(shí)現(xiàn),修改完成后,對(duì)外接口不變,對(duì)用戶使用無(wú)影響。
⑤方便重用,任何一個(gè)會(huì)開(kāi)車(chē)的人都可以駕駛汽車(chē),只要對(duì)外的接口相同就行了。
總之,封裝就是將抽象得到的屬性和方法形成“類(lèi)”,并將類(lèi)內(nèi)部信息進(jìn)行隱藏,對(duì)外公開(kāi)接口的機(jī)制。封裝限制從類(lèi)外訪問(wèn),從而提升代碼安全性和可維護(hù)性。
封裝的內(nèi)涵是把抽象得到的屬性和方法進(jìn)行了封裝,對(duì)于方法,隱藏了具體的實(shí)現(xiàn),提供了方法名供使用者調(diào)用。對(duì)于成員變量也進(jìn)行隱藏,通過(guò)方法對(duì)外提供訪問(wèn)接口。通過(guò)封裝,限制了直接訪問(wèn)成員變量,通過(guò)方法,增加驗(yàn)證邏輯,提高了安全性和可維護(hù)性。
封裝的外延是按照內(nèi)聚性、一致性、封裝性、清晰性、完整性進(jìn)行類(lèi)的封裝。
內(nèi)聚性就是類(lèi)應(yīng)該描述一個(gè)單一的實(shí)體。例如,學(xué)生姓名和教師所帶班級(jí)不是單一實(shí)體的屬性,不能組合在一個(gè)類(lèi)中。
一致性就是類(lèi)、成員變量、方法名要有意義,并且順序是成員變量、構(gòu)造方法、普通方法。
封裝性就是類(lèi)中成員變量是私有屬性,通過(guò)getter/setter訪問(wèn)。
清晰性是指類(lèi)的結(jié)構(gòu)應(yīng)該是易于解釋和理解的。
完整性是需要充分考慮多種不同用戶設(shè)計(jì),應(yīng)該能通過(guò)屬性和方法提供多種方案以適應(yīng)用戶不同需求。例如,字符串中有很多方法,同時(shí)這些方法可以組合完成各種任務(wù)。
>>本文地址:http://uj2y2uok.com/zhuanye/2020/48444.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?
07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)