我們在編寫程式的過程實際上也是解決問題的過程,對於具體的某乙個事物最好採用一類解決問題的方法,使我們解決問題時可維護性、可擴充套件性、可重用性更好。
在物件導向產生之前,人們採用的是面向過程的程式設計方法,就是按照計算機思維寫出**一步步執行下去,也就是將客體所構成的現實世界對映到由功能模組組成的解空間中,這樣就無法解決維護、擴充套件、重用的問題,導致**邏輯過於複雜,在編寫程式時難度增大,特別是在增加新的需求,新增新的功能時,付出的代價會很大。後來我們發現當我們頻繁更改需求時,改變的往往是行為,而客體一般不會改變,所以我們就把行為封裝起來,當有需求改變時,只改變行為就好了。於是物件導向的思想產生了。
下面來說說物件導向的三大特徵:封裝,繼承,多型
封裝:將我們想要變化的部分封裝起來,而不影響其他模組的行為,軟體設計中的乙個原則「高內聚,低耦合」就是體現在封裝性上。
繼承:子類繼承父類的一些行為和屬性,而自己有自己獨特的行為和屬性,繼承有助於**的可重用性,舉個例子:兒子和父親長的很像,兒子只是繼承了父親的外形特點,又不完全等同於父親,兒子有自己的行為和方法,比如父親是老師,他的行為是教學,但是兒子以後的職業不一定是老師,可以是醫生,治病救人,這就是子類繼承父類的一些行為和屬性,同時又有自己獨特的行為。
多型:多型主要的作用是給不相關的類提供通用的處理服務,比如狗會叫,貓也會叫,那麼我們就可以呼叫「叫」這個介面,實現的客體可以是貓,狗或者其他的動物。多型,也就是同樣的行為在不同的客體上產生的形態有所不同,同樣是叫,貓和狗的叫聲肯定不同。
本章先粗略的介紹一下物件導向的主要思想,後續的章節會根據具體的程式來細說物件導向思想和面向過程的區別,在我們的印象中c語言是一種面向過程的語言,下章會介紹一下怎麼用c語言寫出物件導向風格的程式。
物件導向思想
物件導向思想 物件導向是以現實生活中客觀存在的食物 即物件 來構造軟體系統,並在系統構造中盡可能運用人類的自然思維方式,強調直接以食物物件為中心來思考 分析問題,並根據事物的本質特徵將其抽象為系統中的物件,作為系統的基本構成單位。物件導向思想主要分為3個主要部分 物件導向分析 物件導向設計 物件導向...
物件導向思想
is a基於類繼承或介面實現,is a 是表達這句話的一種方式 這個東西是那個東西的一種 例如 野馬是一種馬。是乙個 has a關係是基於用法 即引用 而不是繼承。換句話說,如果類a中的 具有對類 b例項的引用,則 類 a has a類b 例如 馬有韁繩。有乙個 is a 代表的是類之間的繼承關係,...
物件導向思想
1.面向過程思想 面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。在一些簡單的邏輯上,確實是面向過程更加簡單一點,但是當你面對是一系列複雜的模組和功能的時候,各司其職的物件導向思想變會將很多複雜的邏輯簡單化,所以引入物件導向思想。2.物件...