首頁 後端開發 php教程 php物件導向三大特性

php物件導向三大特性

Aug 22, 2019 am 11:06 AM
php 物件

php物件導向三大特性

  物件導向是在結構化設計方法出現許多問題的情況下應運而生的。結構化設計方法求解問題的基本策略是從功能的角度檢視問題域。下面我們就來為大家介紹一下php物件導向的三大特性。

推薦教學:PHP影片教學

#三大功能是:封裝、繼承、多態

封裝

#  所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類別或物件操作,對不可信的進行資訊隱藏。

  封裝是物件導向的特徵之一,是物件和類別概念的主要特性。簡單的說,一個類別就是一個封裝了資料以及操作這些資料的程式碼的邏輯實體。在一個物件內部,某些程式碼或某些資料可以是私有的,不能被外界存取。透過這種方式,物件對內部資料提供了不同程度的保護,以防止程式中無關的部分意外的變更或錯誤的使用了物件的私有部分。

繼承

  所謂繼承是指可以讓某個類型的物件獲得另一個類型的物件的屬性的方法,它支援按級分類的概念。

  繼承是指這樣一種能力:它可以使用現有類別的所有功能,並在無需重新編寫原始的類別的情況下對這些功能進行擴展。透過繼承創建的新類別稱為“子類別”或“衍生類別”,被繼承的類別稱為“基底類別”、“父類別”或“超類別”。繼承的過程,就是從一般到特殊的過程。要實現繼承,可以透過「繼承」(Inheritance)和「組合」(Composition)來實現。繼承概念的實作方式有二類:實作繼承與介面繼承。實作繼承是指直接使用基底類別的屬性和方法而無需額外編碼的能力;介面繼承是指僅使用屬性和方法的名稱、但是子類別必須提供實作的能力;

多態

  所謂多型就是指一個類別實例的相同方法在不同情形有不同表現形式。

  多態機制使具有不同內部結構的物件可以共用相同的外部介面。這意味著,雖然針對不同物件的特定操作不同,但透過一個公共的類,它們(那些操作)可以透過相同的方式予以調用。

五大基本原則

#單一職責原則SRP(Single Responsibility Principle)

#  是指一個類別的功能要單一,不能包羅萬象。如同同一個人一樣,分配的工作不能太多,否則一天到晚雖然忙碌的,但效率卻高不起來。

開放封閉原則OCP(Open-Close Principle)

  一個模組在擴展性方面應該是開放的而在更改性方面應該是封閉的。例如:一個網路模組,原來只服務端功能,而現在要加入客戶端功能。

  那麼應當在不用修改服務端功能代碼的前提下,就能夠增加客戶端功能的實現代碼,這要求在設計之初,就應當將服務端和客戶端分開,公共部分抽像出來。

替換原則(the Liskov Substitution Principle LSP)

  子類別應可以替換父類別並出現在父類別能夠出現的任何地方。例如:公司搞年度晚會,所有員工可以參加抽獎,那麼不管是老員工還是新員工,也不管是總部員工還是外派員工,都應當可以參加抽獎,否則這公司就不和諧了。

替換原則(the Liskov Substitution Principle LSP)

  假設B是較A低的模組,但B需要使用到A的功能,這個時候,B不應當直接使用A中的具體類: 而應當由B定義一抽象接口,並由A來實現這個抽象接口,B只使用這個抽象接口:這樣就達到了依賴倒置的目的,B也解除了對A的依賴,反過來是A依賴B定義的抽象介面。透過上層模組難以避免依賴下層模組,假如B也直接依賴A的實現,那麼就可能造成循環依賴。一個常見的問題就是編譯A模組時需要直接包含到B模組的cpp文件,而編譯B時同樣要直接包含到A的cpp檔。

介面分離原則(the Interface Segregation Principle ISP)

  模組間要透過抽象介面隔離開,而不是透過具體的類別強耦合起來

以上是php物件導向三大特性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

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

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

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

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

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

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

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

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

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

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

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

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

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

See all articles