黑馬程式設計師 我理解的物件導向

2021-06-19 17:38:10 字數 3399 閱讀 5052

----------------------  

asp.net+android+ios開發

、.net培訓

、期待與您交流! ---------------------- 

茹化肖:

物件。首先你得知道什麼類到底是怎麼樣乙個概念。天地萬物,我們都可以抽象為類。比如 房子 ,車,飛機,人、等等 都是類。但是呢,房子中有別墅,四合院,平方,瓦房 等等的不同,但是還是房子啊 ?所以是由房子 這個類所產生的物件。人 是類,男人 女人  老人 小孩  你  我 他 這些都是人的物件。我們把這個概念實現 就是相當於 給類物件例項化。。。。。。後面省略一萬字。

第六天魔王:

就相當於乙個微波爐,你把東西(引數)放進去,經過處理後變成香噴噴的食物(返回值),你不需要知道微波爐怎麼運轉的,你只要準備原料就行。(這是封裝)而且這個微波爐你可以用,給了別人別人也可以用,別人說不定按照這個微波爐製造了第二個微波爐,同時這第二個微波爐還新增了調節火力大小的功能(這是繼承),你把速食麵裝進去拿出來的時候變成了煮速食麵,把玉公尺放進去拿出來的是煮玉公尺,原料不同拿出來的結果也不同,但都是微波爐做出來的。(這是多型)

紅鷹(jake):

我的理解:物件導向就是指針對我沒要解決的問題寫方法,離開這個物件之後就什麼都不是了,同樣對這個物件所做的所有方法都不影響到其他的物件。

可以增強**的可讀性、重複利用性,解決了**的重寫問題。

使**更有安全性,物件中的屬性只能通過物件去操作。

〆、單曲迴圈:

大概就是自定義資料型別吧,資料型別可以有屬於自己的屬性 方法 事件  不管是自己定義的還是繼承與別人的。

許庭洲:

1. 物件: 一輛汽車

2. 類: 比如每一輛汽車是乙個物件的話,所有的汽車可以作為乙個摸板,就定義汽車這個類;

3. 繼承: 汽車作為乙個類已經存在, 作為具有自身特徵的卡車就可以從汽車類中繼承。

如遠行客:

我的了解:物件導向這種思想就是以物件為中心,屬性,方法和事件等都是以物件存在為前提,也就是說,如果沒有物件了,這些東西也就不存在了,所以,物件導向的**是模組化的,即一段**完成乙個小的功能,這些功能又是物件所具有的,也就是通過物件將一些聯絡不大或者沒有聯絡的**組合關聯起來,這些關聯起來的功能塊**形成對物件的完整的描述。

歲月渲染:

物件導向就是對專案上來說一種思維方式,對乙個專案的程式設計整體抽象出幾個或多個類,再根據這些類編寫該項目的程式的過程,但是這個過程必須用到類和物件,類就是對相似事物的抽象,比如就是車類 、人類、動物類等等,而物件就是類的例項化,比類更具體。例如車類中的(我眼前的黑色奧迪a8)就可以稱為車類的乙個物件。同時也設計到了封裝、繼承、多型。。。。。。。。。

師弟:我簡單的理解,就是物件導向的語言為了模擬現實世界,把所有能見事物都當做物件處理。

個人比較喜歡最後這名網名叫師弟的同學所說,物件導向的語言為了模擬現實世界,把所有能見事物都當做物件處理。

我感覺中的物件導向就像是乙個假象的世界一樣,細算的話其實什麼都不能直接拿出來,但是每一樣都可以具象化出來產生例項,然後為己所用,在這樣想的時候感覺自己就像造物的神,嘿嘿,神說要有光,於是便有了光。也許自己愛上程式設計就是因為這種造物的快感吧。

然後是物件導向程式設計設計的幾個原則,留下來,方便學習:

1. 開閉原則(the open closed principle ocp)

乙個模組在擴充套件性方面應該是開放的而在更改性方面應該是封閉的。因此在進行物件導向設計時要盡量考慮介面封裝機制、抽象機制和多型技術。該原則同樣適合於非物件導向設計的方法,是軟體工程設計方法的重要原則之一。我們以收音機的例子為例,講述物件導向的開閉原則。我們收聽節目時需要開啟收音機電源,對準電台頻率和進行音量調節。但是對於不同的收音機,實現這三個步驟的細節往往有所不同。比如自動收縮電台的收音機和按鈕式收縮在操作細節上並不相同。因此,我們不太可能針對每種不同型別的收音機通過乙個收音機類來實現(通過過載)這些不同的操作方式。但是我們可以定義乙個收音機介面,提供開機、關機、增加頻率、降低頻率、增加音量、降低音量六個抽象方法。不同的收音機繼承並實現這六個抽象方法。這樣新增收音機型別不會影響其它原有的收音機型別,收音機型別擴充套件極為方便。此外,已存在的收音機型別在修改其操作方法時也不會影響到其它型別的收音機。

2. 替換原則 (the liskov substitution principle lsp)

子類應當可以替換父類並出現在父類能夠出現的任何地方。這個原則是liskov於2023年提出的設計原則。它同樣可以從bertrand meyer 的dbc (design by contract) 的概念推出。

我們以學生為例,夜校生為學生的子類,因此在任何學生可以出現的地方,夜校生均可出現。這個例子有些牽強,乙個能夠反映這個原則的例子時圓和橢圓,圓是橢圓的乙個特殊子類。因此任何出現橢圓的地方,圓均可以出現。但反過來就可能行不通。

運用替換原則時,我們盡量把類b設計為抽象類或者介面,讓c類繼承類b(介面b)並實現操作a和操作b,執行時,類c例項替換b,這樣我們即可進行新類的擴充套件(繼承類b或介面b),同時無須對類a進行修改。

3. 依賴原則 (the dependency inversion principle dip)

在進行業務設計時,與特定業務有關的依賴關係應該盡量依賴介面和抽象類,而不是依賴於具體類。具體類只負責相關業務的實現,修改具體類不影響與特定業務有關的依賴關係。

在結構化設計中,我們可以看到底層的模組是對高層抽象模組的實現(高層抽象模組通過呼叫底層模組),這說明,抽象的模組要依賴具體實現相關的模組,底層模組的具體實現發生變動時將會嚴重影響高層抽象的模組,顯然這是結構化方法的乙個"硬傷"。

物件導向方法的依賴關係剛好相反,具體實現類依賴於抽象類和介面。

為此,我們在進行業務設計時,應盡量在介面或抽象類中定義業務方法的原型,並通過具體的實現類(子類)來實現該業務方法,業務方法內容的修改將不會影響到執行時業務方法的呼叫。

4. 介面分離原則(the inte***ce segregation principle isp)

採用多個與特定客戶類有關的介面比採用乙個通用的涵蓋多個業務方法的介面要好。

isp原則是另外乙個支援諸如com等元件化的使能技術。缺少isp,元件、類的可用性和移植性將大打折扣。

這個原則的本質相當簡單。如果你擁有乙個針對多個客戶的類,為每乙個客戶建立特定業務介面,然後使該客戶類繼承多個特定業務介面將比直接載入客戶所需所有方法有效。

以上四個原則是物件導向中常常用到的原則。此外,除上述四原則外,還有一些常用的經驗諸如類結構層次以三到四層為宜、類的職責明確化(乙個類對應乙個具體職責)等可供我們在進行物件導向設計參考。但就上面的幾個原則看來,我們看到這些類在幾何分布上呈現樹型拓撲的關係,這是一種良好、開放式的線性關係、具有較低的設計複雜度。一般說來,在軟體設計中我們應當盡量避免出現帶有閉包、迴圈的設計關係,它們反映的是較大的耦合度和設計複雜化。

----------------------  

asp.net+android+ios開發

、.net培訓

、期待與您交流! ---------------------- 

黑馬程式設計師 物件導向

物件導向 1 物件導向 是基於面向過程的一種思想。面向過程 以函式為基礎,關注實現過程。物件導向 以物件為基礎,關注實現結果。2 物件導向的思想特點 a 是一種更符合人們思考習慣的思想。b 把複雜的事情簡單化了。c 把我們從執行者變成了指揮者。舉例 買電腦。洗衣,做飯。旅遊。把大象裝進冰箱。體現 c...

黑馬程式設計師 物件導向

物件導向是一種思想,把複雜事物簡單化,把面向過程的執行者變成了指揮者。過程其實就是函式,而物件將函式和一些內容封裝。把事物的屬性和行為封裝成物件,再把物件抽象成類。類的訪問修飾符有public和final。而成員的修飾符有public private protected static 成員變數和區域...

黑馬程式設計師 物件導向思想

物件導向的思想 誰有資料,誰就對外提供操作這些資料的方法。例子1 人在黑板畫圓 public class circle private int radius 1 public circle circlecenter,radius public void draw int circlecenter,i...