說道物件導向,首先想到的就是物件導向的三大特徵:(封裝、繼承、多型)
我們想簡單說一下這三個的含義:
1.封裝
這是物件導向最核心的特徵。每個物件包含所能操作的所有資訊,通過例項化類來生成物件。封裝就像建房子,類就是房子,屬性是門窗,欄位是房子裡的東西,方法是人的行為。屬性對字段有保護作用,防止欄位被隨意的修改或讀取
好處:1.能減少耦合;2.類內部的實現可以自由修改;3.類有清晰的對外介面2.繼承
表示一種「is-a」的關係,子類可以繼承父類的所有特性,也可以自定義自己的特性
1.子類可以繼承父類除private外的所有特性2.子類可以重寫父類的特性
3.子類可以拓展父類沒有的屬性和方法
缺點:子類和父類具有強耦合性
「is-a」關係就是繼承關係,例如類中的父與子繼承,「has-a」是一種子和關係,例如輪胎和汽車3.多型
多型表示不同的物件可以執行相同的動作,但是要通過他們自己的方式來實現。例如貓叫,狗叫都是動物叫,但是實現的方式不同。
1.子類可以以父類的身份出現(使用父類的地方也可以用子類來代替)物件導向舉例理解2.子類在工作時以自己的方式來實現
3.子類以父類的身份出現時,獨有的屬性和方法不同使用
多型的使用方式:以父類來宣告,以子類的方式來例項化。比如在呼叫「動物叫」方法的地方,都可以替換成」貓叫「或」狗叫「,即不同的物件執行相同的動作
人.吃飯(),這是物件導向張嘴->往嘴裡放東西->咀嚼->吞下去,這是面向過程
第一種注重的是「人」這個物件,第二種注重的是」吃「這個過程。 但實際上"人.吃飯()"這個方法底層也是靠「吃」這個過程實現的。
物件導向是將現實中的事物物件化,比如人是乙個物件,狗是乙個物件,假如人牽著狗散步是一段程式,那麼執行人牽著狗的內部卻是順序執行。順序執行通俗的說就是面向過程,其實物件導向之中是包含面向過程的思想。但是假如是面向過程來實現人牽著狗散步。就必須先先建立人和狗。但是建立人和狗會順序建立,並不會提取他們的特性物件化。所以說他的重用性很低。如果我在執行一段人牽著狗,假如這只狗不是上面那個狗,比如,上面是貴賓犬,這個是阿拉加斯。那麼因為我不是物件導向程式設計,並沒有提取狗的特性,那麼在執行這個人牽著狗,就得重新在這一遍然後順序執行。
物件導向整理
傳統的面向過程 將要完成的工作分作若干步驟,或在細分為子步驟,然後按步驟從前往後一步一步完成,然後達到目的,好比做飯,洗菜,切菜,下鍋等等每一步都是自己完成最終做成。現代的物件導向 將要完成的工作拆分為乙個乙個物件的任務,每個物件獨立完成自己的任務,任務之間的連線通過呼叫來實現,最終也完成了整體的工...
物件導向的理解
今天發現一本好書,設計模式精解,作者是alan shalloway和james r.trott,薄薄的一本,但是講的很清楚,也讓我對物件導向和設計模式有了多一點的理解。記得去三星實習生面試的時候面試過就問過乙個問題,談談對物件導向的理解,我當時就只說了乙個多型,而且感覺沒有條理,所以今天趁著看過書,...
物件導向的理解
1.物件導向的思想 誰擁有資料,誰就提供運算元據的方面。eg1 售票員統計票上的資料這個過程中統計方法是票據提供的。eg2 兩塊石頭磨成一塊石刀,石刀砍樹,砍成木材,木材又變成椅子 eg3.乙個小球從繩子一端移到至另一端。就第二個例子而言,石頭變成石刀,這個變成的方法不應該是石頭提供的,因為一般沒有...