OOP 物件導向的三大特徵和六大原則

2021-08-21 09:32:35 字數 1774 閱讀 4777

oop:object oriented programming,物件導向的程式設計。

一切事物皆物件,通過物件導向的方式,將現實世界的事物抽象成物件,現實世界中的關係抽象成類、繼承,幫助人們實現對現實世界的抽象與數字建模

,而物件即是對類封裝後的例項化,可以呼叫類物件和方法。通過物件導向的方法,更利於用人理解的方式對複雜系統進行分析、設計與程式設計。同時,物件導向能有效提高程式設計的效率,通過封裝技術,訊息機制可以像搭積木的一樣快速開發出乙個全新的系統。物件導向是指一種程式設計范型,同時也是一種程式開發的方法。物件指的是類的集合。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充套件性。

面對物件主要具有繼承,封裝,和多型性三大特徵:

1.繼承:繼承是從已有類得到繼承資訊建立新類的過程。

2.封裝:通常認為封裝是把資料和運算元據的方法繫結起來,對資料的訪問只能通過已定義的介面。我們編寫乙個類就是對資料和資料操作的封裝;我們在類中編寫的方法就是對實現細節的一種封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的程式設計介面。

3.多型性:多型性是指允許不同子型別的物件對同一訊息作出不同的響應。簡單的說就是對同樣的物件引用呼叫同樣的方法但是做了不同的事情。多型性分為編譯時的多型性和執行時的多型性。方法過載(overload)實現的是編譯時的多型性(也稱為前繫結),而方法重寫(override)實現的是執行時的多型性(也稱為後繫結)。執行時的多型是物件導向最精髓的東西,要實現多型需要做兩件事:方法重寫和物件造型(用父型別引用引用子型別物件,這樣同樣的引用呼叫同樣的方法就會根據子類物件的不同而表現出不同的行為)。

基於以上這些特徵,物件導向的程式設計具有六大編寫原則:

單一職責原則的定義是就乙個類而言,應該僅有乙個引起他變化的原因。也就是說乙個類應該只負責一件事情。

比如:我們在寫乙個簡單畫圖板時,一般把畫圖板介面與畫圖板上的***分成兩個類去完成。這樣的好處比如我們只想改變畫圖板介面時,***類就可以直接呼叫,不必重新編寫。可以降低類的複雜性,提高類的可讀性和系統的維護性。

開閉原則的定義是軟體中的物件(類,模組,函式等)應該對於擴充套件是開放的,但是對於修改是關閉的。

比如對person父類中有很多方法,但想在增加study的方法時,不要直接在父類中修改,可以在student子類中擴充套件study方法。這樣可以提高方法的復用性和系統的維護性。

黎克特制替換原則定義是如果對每乙個型別為t1的物件o1,都有型別為t2的物件o2,使得以t1定義的所有程式p在所有物件o1都替換成o2的時候,程式p的行為都沒有發生變化,那麼型別t2是型別t1的子型別。

簡單來說就是子類可以擴充套件父類功能,但是不能改變其原有的功能。可以有以下這些理解:

子類可以實現父類的抽象方法,但是不能覆蓋父類的非抽象方法。

子類可以增加自己獨有的方法。

當子類的方法過載父類的方法時候,方法的形參要比父類的方法的輸入引數更加寬鬆。

當子類的方法實現父類的抽象方法時,方法的返回值要比父類更嚴格。

介面隔離原則的定義是客戶端不應該依賴他不需要的介面。

比如:乙個work介面中有teach和study兩個抽象方法,而對於teacher來說只用teach方法,卻也要把study方法實現一遍,這樣**就會冗餘,並增加程式執行負擔,因此應該把teach和study方法分別寫成兩個介面。這樣可以提高**的靈活性。

迪公尺特原則也被稱為最小知識原則,他的定義乙個物件應該對其他物件保持最小的了解。簡單的理解就是高內聚,低耦合,乙個類儘量減少對其他物件的依賴,並且這個類的方法和屬效能用私有的就盡量私有化.

以上原則要根據實際情況而具體把握,比如方向介面不能因為某個程式可能只使用乙個程式而為每乙個方向都寫乙個介面,那樣反而會更加麻煩。

物件導向的三大特徵和六大原則

具體解釋 通常認為封裝就是把資料和運算元據的方法繫結起來,對資料的訪問只能通過已定義的介面。物件導向的本質就是將現實世界描繪成一系列完全自治,封閉的物件。我們在類中編寫的方法就是對實現細節的一種封裝 我們編寫乙個類就是對資料和資料操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的...

物件導向程式設計 OOP 的六大原則

物件導向程式設計 oop 的六大原則 要把軟體做得非常靈活又要便於維護是乙個很困難的事情。靈活的軟體他的結構就複雜,維護起來就困難。有得必有失,關鍵就在於如何處理這兩者,使得大於失。軟體的設計開 發應遵循以下六大原則 1.ocp 全稱 open closed principle 開放 封閉原則 說明...

OOP物件導向三大特點

一 封裝 將現實中乙個事物的屬性和功能集中定義在乙個物件中。建立物件 建立物件的3種方式 1.直接量方式 建立乙個單獨的物件 var obj 2.用new方式 var obj new object obj.屬性名 值 obj.方法名 function 3.反覆建立多個相同結構的物件的方式 2步 定義...