PHP物件導向到底是啥?十分鐘通俗易懂圖文教學

2020-07-16 10:05:53

PHP物件導向的基本概念

(一)、物件導向的基本概念

1、什麼是物件

l 物件導向英文是Object Oriented,拆開來就是

-面向(Oriented)

-物件( Object )

概念:什麼是物件

l 世間萬物皆物件

n 一切可見之物

u 一個老人,一台筆電

u 一個桌子

u 一個球員

u 一個女主播

n 一切不可見之物也可以是物件

u 一個空氣裡的細菌

u 一個抽象的概念

l 抽象,顧名思義,就是抽掉了具體形象的東西。如:人,就可以說是一個相對抽象的概念,因為一個具體的人有性別、年齡、身高、相貌、社會關係等具體特徵,但抽象的就是不包含這些具體特徵的一個概念,因此說它是抽象的;而具體的人的概念應該是張三、李四等。 因此說,抽象概念一般是指的每一類事物,而不是某一個事物。

2、物件的組成

l 物件組成包含兩部分

n 物件的組成元素

u 是物件的資料模型,用於描述物件的資料

u 又被稱為物件的屬性,或者物件的成員變數

n 物件的行為

u 是物件的行為模型,用於描述物件它能做什麼事情

u 又被稱為物件的方法

3、物件的特點

l 每一個物件都是獨一無二

n 比如說張三就是張三,李四就是李四,你家的桌子就是你家的不是別人家的,而且你家臥室的桌子不是客廳的桌子,這些都不能混為一談

l 物件是一個特定的事物,它的職能就是完成特定的功能

n 比如桌子,它就是一張桌子,它就是為了滿足你吃飯的時候的需求,你可以把飯菜盛飯到上面,這樣吃起來就方便

n 再比如球員,它的職能就是傳球,運球,投籃,扣籃,這些就是他們要做的事情

l 物件它是可以重複使用的

n 比如球員詹姆斯,他打完一場籃球後,還可以繼續打,不是說打完一場就結束了,不能再打了

n 再比如,吃飯的桌子,你吃完了,下次再吃的時候,還可以繼續使用這張桌子,所以它是可以被重複使用

n 再比如,一輛車子,它從北京開到到廣州,不是說它開到廣州就報廢了,而是可以往返很多次

4、什麼是物件導向

l 面向就是指在程式設計的時候,一直把物件放在心中

n 比如你面向牆壁,你一直看到的就是牆壁,

n 比如老師講課,它面向是誰,是學生,所以老師上課的時候要一直面對的是學生

n 物件導向,就是程式設計的時候,心裡一直面向著物件

l 物件導向程式設計,指的就是在程式設計的時候,把一切資料模型轉換成物件的結構進行儲存,

n 實際上就是程式設計的時候,我們把所有的資料結構,轉換成屬性和方法這種物件的形式進行儲存,我們把這種方式就叫做物件導向程式設計

5、為什麼要使用物件導向

  • 物件的描述方式更加貼合真實世界,更加方便我們理解大型專案的業務邏輯

n 我們早期的時候是程序導向程式設計,就是每天講的都是程式碼的組織結構,但是有了物件的描述方式後,我們還可以說,我寫的就是一個一個的物件,然後他們之間有各種互動

n 在程式設計的過程當中,這種物件導向的開發方式拉近了程式碼和真實世界的距離

6、物件導向的實質

l 做任何事情我們都需要觀察事物的本質,那麼物件導向的實質是

n 把生活中要解決的問題,都通過物件的方式進行儲存,什麼是物件方式的儲存,就是把資料結構儲存為物件的屬性和方法

u 比如我們要做一個家居軟體,裡面所有的家居我們都可以用物件的屬性和方法進行表示出來,比如它的大小,顏色,尺寸 等等

方法有哪些呢,比如有的家居是可以折疊的,這個折疊就是它的方法

u 再比如一個球員,它的屬性有什麼,身高,年齡,團隊,膚色等等,那方法呢,就比如運球,傳球,投籃,扣籃等這些基本的技能就是球員的方法

l 物件和物件之間的互動,就是通過方法的呼叫來完成,這個有點抽象,後面我們會通過範例進行詳細的剖析

n 舉例

u 比如我從教室門口,走了大概10步,來到了講台中間,緊接著我看向張三,然後問了一個問題,「你好,請問你叫什麼名字」,最後張三回復我:「你好,我叫張三」

老師.png

這個圖裡,物件分別是老師,學生,首先是老師呼叫了他自身的方法,方法的順序依次是 走,看,問,緊接著呼叫了張三物件的回復方法

7、物件導向的基本思路

l 第一步:識別物件

-任何實體都可以稱為物件

l 第二步:識別物件的屬性

n 物件裡面儲存的資料都是屬性

n 對於不同的業務我們要關注的屬性是有所不同的

u 比如上面的場景中,我們要用物件導向的方式把它還原,那麼關注的屬性就是名字,身份,方法就是3個,走,看,問

u 比如女主播和球員都是人,但是因為業務不同,所以我們關注的屬性和方法也會不同,比如女主播,我們更關注的是它的藝名,還有唱歌,球員我們更關注的是他是哪個球隊的,以及他球技

l 第三步:識別物件的行為

n 比如說物件自己資料的改變都是行為

n 物件和外部之間的互動

8、物件導向的基本原則

l 物件內部是高內聚的

n 只包含一項特定的職能(職能是可大可小)

u 比如說球員,他只負責打球,女主播只負責唱歌,雖然他們還可以做其他事情,但是因為業務不同,所以職能不同,然後其他的職能就沒有包含進來

n 所有物件相關的內容都封裝在物件內部

l 物件外部它是低耦合的

n 外部的世界只能看見物件的部分屬性,看不到全部的

n 外部世界只能看見物件的部分行為,看不到全部的

u 這個高內聚低耦合不關是物件的一些基本原則,它也是我們整個程式設計當中的一個重要原則,特別是低耦合更重要一些,為什麼這麼說呢,因為一旦做到了低耦合,這樣的話,物件之間的依賴關係會變得非常小,隨之帶來的好處就是,它的可維護性更高了,可延伸性也加強了,比如做一個遊戲軟體,這個球員的物件可以被多個遊戲使用,這樣在開發新遊戲的時候,可以直接拿來使用,這樣的話,複用性也增強了

u 高內聚的好處就是,你該有的都有了,盡量寫全一點就不會出現缺胳膊少腿的

u 高內聚低耦合它不僅僅只是我們設計物件的時候的基本原則,它也是我們程式設計的一個重要設計原則


以上就是PHP物件導向到底是啥?十分鐘通俗易懂圖文教學的詳細內容,更多請關注TW511.COM其它相關文章!