首頁 後端開發 php教程 PHP學習筆記 -- 物件導向的核心概念

PHP學習筆記 -- 物件導向的核心概念

Jul 29, 2016 am 08:57 AM
exception final interface php traits

繼承與多態都是對類別進行複用,它們一個是類別層級的複用,一個是方法層級的複用。 類別的組合與繼承。 低耦合、解耦、緊密耦合。 繼承存在的問題:
1.繼承破壞封裝性。
2.繼承是緊密耦合的。
3.繼承擴展複雜。
4.不恰當地使用繼承可能違反現實世界中的邏輯。
在創建組合對象時,組合需要一一創建局部對象,這一定程度上增加了一些代碼,而繼承則不需要這一步,因為子類自動有了父類的方法。 應該如何使用繼承:
1.精心設計專門用於被繼承的類,繼承樹的抽象層應該比較穩定,一般不要多於三層。
2.對於不是專門用於被繼承的類,禁止其被繼承,也就是使用final修飾符。使用final修飾符既可防止重要方法被非法覆寫,又能為編輯器尋找最佳化的機會。
3.優先考慮用組合關係提高程式碼的可重用性。
4.子類別是一種特殊的類型,而不只是父類別的一個角色。
5.子類別擴展,而不是覆蓋或使父類別的功能失效。
6.底層程式碼多用組合,頂層/業務層程式碼多用繼承。底層用組合可以提高效率,避免對象臃腫。頂層程式碼用繼承可以提高彈性,讓業務使用更方便。
多繼承機制:Traits。 多態:
意義:同一類別的物件收到相同訊息時,會得到不同的結果。而這個消息是不可預測的。
重載並不是物件導向裡的東西,和多型也不是一個概念,它屬於多態的一種表現。
多態性是一種透過多種狀態或階段來描述相同物件的程式設計方式。它的真正意義在於:實際開發中,只要關心一個介面或基類的編程,而不必關心一個物件所屬於的特定類別。
多態的實現:
1.多態指同一類物件在運行時的具體化。
2.PHP語言是弱型的,實作多型態更簡單、更靈活。
3.型別轉換不是多型態。
4.PHP中父類別和子類別看做「繼父」和「繼子」關係,它們有繼承關係,但不存在血緣關係。因此子類無法向上轉化為父類,因而失去多態最典型的特徵。
5.多態性的本質就是if…else,只不過實現的層級不同。
介面定義一套規範描述一個「物」的功能,要求如果現實中的「物」想成為可用,就必須實現這些基本功能。 抽象類別和介面。 從某種意義上來說,Traits和介面都是對「多重繼承」的一種變相實作。 介面的幾個概念:
1.介面作為一種規範和契約存在。作為規範,介面應該保證可用性;作為契約,介面應該保證可控性。
2.介面只是一個聲明,一旦使用interface關鍵字,就應該實現它。可以由程式設計師實作(外部介面),也可以由系統實作(內部介面)。介面本身什麼都不做,但是它可以告訴我們它能做什麼。
3.PHP中的介面有兩個不足,一是沒有契約限制,二是缺少足夠多的內部介面。
反射:
物件導向程式設計中物件被賦予了自省的能力,而這個自省的過程就是反射。
反射,直覺理解就是根據到達地找到出發地和來源。
反射指在PHP運行狀態中,擴展分析PHP程序,導出或提取出關於類別、方法、屬性、參數等的詳細信息,包括註釋。這種動態擷取資訊以及動態呼叫物件方法的功能稱為反射API。

反射的作用:可以用於文件產生。 (hook?)

其用途如:自動加載插件,自動生成文檔,甚至可用來擴充PHP語言

PHP有Token函數,可以透過這個機制實現一些反射功能。 為什麼要使用反射?反射存在的必要性是什麼?

反射的目的就是為了擴展未知的應用


異常和錯誤處理:
異常(exception)和錯誤(error)的概念是不一樣的。

以上就介紹了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

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP與其他語言:比較 PHP與其他語言:比較 Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

See all articles