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