面对对象编程(OOP, Object Oriented Programming)及其三个基本特性
-
一千個(gè)讀者,一千個(gè)哈姆雷特。對(duì)于面對(duì)對(duì)象編程,書上都會(huì)告訴我們它有三個(gè)基本特性,封裝,繼承,多態(tài),但談起對(duì)這三點(diǎn)的見解,又是仁者見仁智者見智,感覺還是得多去編程中體驗(yàn)把 。
-
面向?qū)ο缶幊?#xff08;OOP, Object Oriented Programming)是一種編寫程序的方法,旨在提升開發(fā)大型程序的效率,使程序易于維護(hù) 。
-
面向?qū)ο缶幊淌且环N基于以下思路的程序設(shè)計(jì)方法:將關(guān)注點(diǎn)置于對(duì)象(Object)本身,對(duì)象的構(gòu)成要素包含對(duì)象的行為及操作,以此為基礎(chǔ)進(jìn)行編程。這種方法使程序易于復(fù)用,軟件的生產(chǎn)效率因而得以提升。其中所使用的主要編程技巧有繼承、封裝、多態(tài)三種。
1.封裝
通常認(rèn)為是把數(shù)據(jù)和數(shù)據(jù)操作綁定起來(lái),對(duì)數(shù)據(jù)的訪問(wèn)只能通過(guò)已定義的方法或者接口。面對(duì)對(duì)象的本質(zhì)就是將現(xiàn)實(shí)世界描繪成一系列完全自治,封閉的對(duì)象.我們?cè)兕愔芯帉懙姆椒ㄊ菍?duì)實(shí)現(xiàn)細(xì)節(jié)的一種封裝,我們編寫的類就是對(duì)數(shù)據(jù)和數(shù)據(jù)操作的封裝,可以說(shuō),封裝就是隱藏一切可以隱藏的東西(隱藏那些沒必要展現(xiàn)給類調(diào)用者的成員),只向外界提供最簡(jiǎn)單的編程接口.(保護(hù)隱私),
至于暴露接口這個(gè),筆者我暫時(shí)也不是很理解…
public interface Service.{public void setData(); }可能是給你一個(gè)service接口,你自己去實(shí)現(xiàn)serviceImpl,調(diào)用dao層給你的數(shù)據(jù)操作方法?(有待商榷)
2.繼承
所謂繼承是指繼承已存在的類所擁有的成員而生成新的類,特殊和一般,子類和父類的區(qū)別;繼承使變化的軟件系統(tǒng)有一定的延續(xù)性.(復(fù)用性)
測(cè)試
//測(cè)試public static void main(String[] args) {Parent p1 = new Parent();Child c= new Child();p1.eat();c.eat(); //繼承了父類的公有方法p1.say();c.say();System.out.println(p1.age);System.out.println(c.age);//繼承了父類的公有屬性}3.多態(tài)
多態(tài)是指針對(duì)同一種消息,不同的對(duì)象可以進(jìn)行不同的操作(允許不同子類對(duì)同一消息做出不同的響應(yīng))
多態(tài)又分編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài):
編譯時(shí)多態(tài)的實(shí)現(xiàn)方式是方法的重載,方法重載發(fā)生在同一個(gè)類種,同名的方法擁有不同的入?yún)?參數(shù)個(gè)數(shù)或類型不同)視為重載.這樣在編程階段程序員可以根據(jù)不同的入?yún)⒄{(diào)用同名方法.
至于運(yùn)行時(shí)多態(tài),實(shí)現(xiàn)方式就是方法的重寫,分三步走,一是子類繼承父類,二是子類重寫父類的方法(抽象,或者已有的非私有方法),三是父類變量引用子類的對(duì)象.
改寫上面的子類,重寫父類的say方法并測(cè)試
測(cè)試結(jié)果
多態(tài)的好處是解耦,系統(tǒng)中父類提供的是一個(gè)抽象方法,子類是對(duì)這個(gè)抽象方法的具體實(shí)現(xiàn)系統(tǒng)更新時(shí),只需要換掉子類,如果布實(shí)現(xiàn)多態(tài),就需要換掉整個(gè)父類,這樣就可能牽一發(fā)而動(dòng)全身.
另外實(shí)現(xiàn)接口也可以實(shí)現(xiàn)多態(tài),不同類擁有同名的方法.(這點(diǎn)有待商榷)
轉(zhuǎn)載于:https://www.cnblogs.com/shiqisir/p/10792140.html
總結(jié)
以上是生活随笔為你收集整理的面对对象编程(OOP, Object Oriented Programming)及其三个基本特性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 性能测试入门(二)转:JMeter基础之
- 下一篇: HDU - 1827 Summer Ho