面对对象编程(OOP, Object Oriented Programming)及其三个基本特性
-
一千個讀者,一千個哈姆雷特。對于面對對象編程,書上都會告訴我們它有三個基本特性,封裝,繼承,多態,但談起對這三點的見解,又是仁者見仁智者見智,感覺還是得多去編程中體驗把 。
-
面向對象編程(OOP, Object Oriented Programming)是一種編寫程序的方法,旨在提升開發大型程序的效率,使程序易于維護 。
-
面向對象編程是一種基于以下思路的程序設計方法:將關注點置于對象(Object)本身,對象的構成要素包含對象的行為及操作,以此為基礎進行編程。這種方法使程序易于復用,軟件的生產效率因而得以提升。其中所使用的主要編程技巧有繼承、封裝、多態三種。
1.封裝
通常認為是把數據和數據操作綁定起來,對數據的訪問只能通過已定義的方法或者接口。面對對象的本質就是將現實世界描繪成一系列完全自治,封閉的對象.我們再類中編寫的方法是對實現細節的一種封裝,我們編寫的類就是對數據和數據操作的封裝,可以說,封裝就是隱藏一切可以隱藏的東西(隱藏那些沒必要展現給類調用者的成員),只向外界提供最簡單的編程接口.(保護隱私),
至于暴露接口這個,筆者我暫時也不是很理解…
public interface Service.{public void setData(); }可能是給你一個service接口,你自己去實現serviceImpl,調用dao層給你的數據操作方法?(有待商榷)
2.繼承
所謂繼承是指繼承已存在的類所擁有的成員而生成新的類,特殊和一般,子類和父類的區別;繼承使變化的軟件系統有一定的延續性.(復用性)
測試
//測試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.多態
多態是指針對同一種消息,不同的對象可以進行不同的操作(允許不同子類對同一消息做出不同的響應)
多態又分編譯時多態和運行時多態:
編譯時多態的實現方式是方法的重載,方法重載發生在同一個類種,同名的方法擁有不同的入參(參數個數或類型不同)視為重載.這樣在編程階段程序員可以根據不同的入參調用同名方法.
至于運行時多態,實現方式就是方法的重寫,分三步走,一是子類繼承父類,二是子類重寫父類的方法(抽象,或者已有的非私有方法),三是父類變量引用子類的對象.
改寫上面的子類,重寫父類的say方法并測試
測試結果
多態的好處是解耦,系統中父類提供的是一個抽象方法,子類是對這個抽象方法的具體實現系統更新時,只需要換掉子類,如果布實現多態,就需要換掉整個父類,這樣就可能牽一發而動全身.
另外實現接口也可以實現多態,不同類擁有同名的方法.(這點有待商榷)
轉載于:https://www.cnblogs.com/shiqisir/p/10792140.html
總結
以上是生活随笔為你收集整理的面对对象编程(OOP, Object Oriented Programming)及其三个基本特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 性能测试入门(二)转:JMeter基础之
- 下一篇: HDU - 1827 Summer Ho