程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 面向對象的PHP

面向對象的PHP

編輯:關於PHP編程

許多語言本身就是面向對象的,而PHP用了幾年的時間才引入這類功能。很多人認為,以前試圖向該語言添加面向對象的功能都是失敗的。盡管版本4提供了非常基本的面向對象程序設計(OOP)概念,但是還存在一些不足,包括: ·        非正式的對象引用方法 ·        無法設置字段和方法的作用域(公共、私有、保護、抽象)。 ·        沒有命名構造函數和標准約定 ·        缺少對象的析構函數。 ·        缺少對象復制特性。 ·        缺少對接口的支持。 幸好PHP5消除了上述所有缺點,對最初的實現進行了本質的改進,還增加了很多新的OOP特性。 OOP的好處    面向對象程序設計的誕生是開發范型一次的重大改變,編程的注意力重新從應用程序的邏輯回到其數據上來,換句話說,OOP將焦點從編程的過程性事件轉向最終建模的真實體。這使得應用程序更接近於我們周圍的現實世界。 封裝    程序員一般都有很強的好奇心,我們喜歡把東西拆開,了解裡面的所有小零件如何在一起工作。雖然能得到精神上的滿足,但深入地了解事物的內部工作原理並是不必要的,例如,成百萬人每天都在使用計算機,但是很少有人真正了解它的工作原理,同樣汽車,電視及許多司空見慣的東西都是如此,通過使用接口就能忽略其內部結構。例如,你知道旋轉收音機的旋轉鈕就可以換台,但你可能不知道實際上這是在告訴收音機要監聽使用特定的頻率傳輸的信號,這是通過解調器完成的,即便不理解這個過程,也不影響使用收音機,因為接口隱藏了這些細節,通過眾所周知的接口將用戶與實際應用程序的內部工作原理分開,這種方法稱為封裝。     面向對象程序設計通過建立定義良好(well-defined)的接口(每個應用程序的組件都可以訪問這個接口),使隱藏應用程序內部工作原理的概念得到進一步提升。具有OOP思維的開發人員不會陷入大量的細節之中,而會設計出獨立於其他組件緊密地結合或耦合(couple)定義良好的接口進行交互的組件稱為對象(object)。對象是通過一個稱為類(class)的模板創建的,類用於定義某個實體所應具有的數據和行為,這種方式有以下優點: ·        開發人員可以修改應用程序的實現,而不會影響到對象用戶,因為用戶只通過對象的接口與對象交互。 ·        會減少可能出現的用戶錯誤,因為對用戶與應用程序的交互有所控制。 繼承   www.2cto.com    在我們周圍的環境中,許多事物(包括人)都可以使用一組良好定義的規則來建模。我們來看員工這一概念,所有員工都有一組共同的性質,例如:姓名、員工號、工資。但是,有許多不責罵類型的員工,如職員,主管、出納和首席執行官等。每一類員工都擁有一般員工定義中所定義的性質的超集。用面向對象的術語來說,這些員工類型繼承(inherit)了一般員工定義,包括此定義中的所有性質和行為,接下來,每個特定的員工類還可以被另一個更明確的類所繼承,例如:“職員”類型可以被白班職員和夜班職員繼承,白班職員和夜班職員都會繼承員工定義和職員定義中的所有性質。基於這個概念,可以再創建一個“人”類,使“員工”類成為“人”類的一個子類,其結果是,員工類及其所有派生類(職員、出納、CEO等)都會立即繼承“人”類中定義的所有性質和行為。     面向對象開發方法建立在繼承概念的基礎之上,這種策略提高了代碼的可重用性,因為它使得人們能夠在多個應用程序中使用設計良好的類[所謂設計良好(well-designed),是指這些類足夠抽象,從而可以重用]。 多態    多態(polymorphism)是來自希臘語的一個術語,原意是“有多種形態”。簡單地講,多態是指OOP能夠根據使用類的上下文來重新定義或改變類的性質或行為。     還是用例子來解釋,假設在員工類的定義中有一個“簽到”和行為,對於職員員工而言,這個行為可能具體為使用時鐘來打卡,對於其類型的員工而言,例如“程序員”簽到可能過網絡進行,雖然兩個類都從員工類繼承到這個行為,但具體的實現要依賴於實現“簽到”的上下文,這種就是多態的強大這處

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved