在php中,物件導向就是將要處理的問題抽象化為對象,然後透過物件的屬性和行為來解決物件的實際問題。物件導向有兩個重要的基本概念:類別和對象,類別是物件的抽象,在類別中可以定義物件的屬性和方法;物件是類別的實例,類別只有在實例化後才能使用。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
物件導向就是將要處理的問題抽象化為對象,然後透過物件的屬性和行為來解決物件的實際問題。我們通常所說的物件導向準確的說應該叫做物件導向程式設計(OOP),它是物件導向的一部分。
物件導向主要分為三個部分,如下所示:
物件導向分析(Object Oriented Analysis,OOA);
物件導向設計(Object Oriented Design,OOD);
物件導向程式設計(Object Oriented Programming,OOP)。
在物件導向中兩個重要的基本概念就是類別和物件:
1) 類
世間萬物都具有自己的屬性和方法,透過這些屬性和方法可以將不同事物區分開來。例如,人具有身高、體重和膚色等屬性,還可以進行吃飯、學習、走路等活動,這些活動可以說是人們所擁有的功能。可以把人看成程式中的一個類,那麼人的身高可以看作類中的屬性,走路可以看作類中的方法。
也就是說,類別是屬性和方法的集合,是物件導向程式設計方式的核心和基礎,透過類別可以將零散的用於實現某項功能的程式碼進行有效管理。例如,建立一個運動類,其中包括 5 個屬性;姓名、身高、體重、年齡和性別,定義 4 個方法:踢足球、打籃球、舉重和跳高。
總而言之,類別是變數(類別的屬性)與作用於這些變數的函數(類別的方法)的集合,而屬性與方法是構成類別的基礎。
2) 物件
類別是具備某項功能的抽像模型,實際應用中還需要對類別進行實例化,這樣就引入了物件的概念。
物件是類別進行實例化後的產物,是一個實體。仍然以人為例,“黃種人是人”這句話沒有錯誤,但反過來說“人是黃種人”,這句話一定是錯的。因為除了黃種人,還有黑人、白人等。那麼「黃種人」就是「人」這個類別的一個實例物件。
可以這樣理解物件和類別的關係:類別是物件的抽象,在類別中可以定義物件的屬性和方法;物件是類別的實例,類別只有被實例化後才能使用。
物件導向程式設計的特性
物件導向程式設計具有封裝、繼承、多型三大特性,它們迎合了程式設計中註重程式碼重用性、靈活性和可擴展性的需要,奠定了物件導向在程式設計中的地位。
1) 封裝
封裝就是將一個類別的使用和實作分開,只保留有限的介面(方法)與外部聯繫。對於用到該類別的開發人員,只要知道這個類別該如何使用即可,而不用去關心這個類別是如何實現的。這樣做可以讓開發人員更好地把精力集中起來專注於別的事情,同時也避免了程式之間的相互依賴所帶來的不便。
例如,在使用電腦時,我們並不需要將電腦拆開了解它每個部件的具體用處,只需要按下電源鍵就能將電腦啟動,這就體現了封裝的好處。
2) 繼承
繼承就是衍生類別(子類別)自動繼承一個或多個基底類別(父類別)中的屬性與方法,並且可以重寫入或新增新的屬性或方法。繼承這個特性簡化了物件和類別的創建,增加了程式碼的重用性。
例如,已經定義了A 類,接下來準備定義B 類,而B 類中有很多屬性和方法與A 類相同,那麼就可以用B 類繼承A 類,這樣就不用再在B 類中定義A 類中已有的屬性和方法,因此可以大幅提高程式的開發效率。
繼承分為單繼承和多繼承,PHP 目前只支援單繼承,也就是說一個子類別有且只有一個父類別。
3) 多態
物件的狀態是多變的。一個物件相對於同一個類別的另一個物件來說,它們擁有的屬性和方法雖然相同,但卻可以有不同的狀態。另外,一個類別可以衍生出若干個子類,這些子類別在保留了父物件的某些屬性和方法的同時,也可以定義一些新的方法和屬性,甚至於完全改寫父類別中的某些已有的方法。多態增強了軟體的靈活性和重用性。
推薦學習:《PHP影片教學》
以上是php物件導向什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!