PHP物件導向到底是啥?十分鐘簡單易懂圖文教程
PHP物件導向的基本概念
#(一)、物件導向的基本概念
1、什麼是物件
l 物件導向英文是Object Oriented,拆開就是
-物件(Oriented)
-物件( Object )
-物件( Object )
# -物件( Object )# -物件( Object )# -物件( Object )
# -物件( Object )# -物件( Object )## -物件( 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步,來到了講台中間,緊接著我看向張三,然後問了一個問題,“你好,請問你叫什麼名字”,最後張三回复我:“你好,我打電話給三」
,緊接著呼叫了張三物件的回覆方法
l
第一步:辨識物件-任何實體都可以稱為物件
l
第二步:辨識物件的屬性n
物件裡面儲存的資料都是屬性n
對於不同的業務我們要關注的屬性是有所不同的u
例如上面的場景中,我們要用物件導向的方式把它還原,那麼關注的屬性就是名字,身份,方法就是3個,走,看,問 u 例如女主播和球員都是人,但是因為業務不同,所以我們關注的屬性和方法也會不同,例如女主播,我們更關注的是它的藝名,還有唱歌,球員我們更關注的是他是哪支球隊的,以及他球技 l 第三步:辨識對象的行為 n 例如說物件自己資料的改變都是行為 n 對象與外在之間的互動 n 只包含一個特定的功能(功能是可大可小) u 比如說球員,他只負責打球,女主播只負責唱歌,雖然他們還可以做其他事情,但是因為業務不同,所以職能不同,然後其他的職能就沒有包含進來 #n 所有物件相關的內容都封裝在物件內部 n 外在的世界只能看見物件的部分屬性,看不到全部的 n 外在世界只能看見物件的部分行為,看不到全部的 u 這個高內聚低耦合不關是物件的一些基本原則,它也是我們整個程式設計當中的一個重要原則,特別是低耦合更重要一些,為什麼這麼說呢,因為一旦做到了低耦合,這樣的話,物件之間的依賴關係會變得非常小,隨之帶來的好處就是,它的可維護性更高了,可擴展性也加強了,比如做一個遊戲軟體,這個球員的對象可以被多個遊戲使用,這樣在開發新遊戲的時候,可以直接拿來使用,這樣的話,復用性也增強了 u 高內聚的好處就是,你該有的都有了,盡量寫全一點就不會出現缺胳膊少腿的 u 高內聚低耦合它不僅僅只是我們設計對象的時候的基本原則,它也是我們程式設計的重要設計原則8、物件導向的基本原則
l 物件內部是高內聚的
l 物件外部它是低耦合的
以上是PHP物件導向到底是啥?十分鐘簡單易懂圖文教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
