abstract:OOP和MVC號稱零基礎(chǔ)學(xué)習(xí)PHP的兩大攔路虎!1、什么是OOP?OOP(object oriented programming),即面向?qū)ο缶幊?,其中兩個最重要的概念就是類和對象。2、什么是類和對象? 世間萬物都具有自身的屬性和方法,通過這些屬性和方法可以區(qū)分出不同的物質(zhì)。 屬性和方法的集合就形成了類,類是面向?qū)ο缶幊痰暮诵暮突A(chǔ),通過類就將零散的
OOP和MVC號稱零基礎(chǔ)學(xué)習(xí)PHP的兩大攔路虎!
1、什么是OOP?
OOP(object oriented programming),即面向?qū)ο缶幊蹋渲袃蓚€最重要的概念就是類和對象。
2、什么是類和對象?
世間萬物都具有自身的屬性和方法,通過這些屬性和方法可以區(qū)分出不同的物質(zhì)。
屬性和方法的集合就形成了類,類是面向?qū)ο缶幊痰暮诵暮突A(chǔ),通過類就將零散的用于實(shí)現(xiàn)某個功能的代碼有效地管理起來了。
類只是具備了某些功能和屬性的抽象模型,而實(shí)際應(yīng)用中需要一個一個實(shí)體,也就是需要對類進(jìn)行實(shí)例化,類在實(shí)例化之后就是對象。
★類是對象的抽象概念,對象是類的實(shí)例化。
對象是一個高級的數(shù)組,數(shù)組是一個最原始的對象,同樣的對象也可以遍歷!
3、OOP具有三大特點(diǎn)!
1)、封裝性:也稱為信息隱藏,就是將一個類的使用和實(shí)現(xiàn)分開,只保留部分接口和方法與外部聯(lián)系,或者說只公開了一些供開發(fā)人員使用的方法。于是開發(fā)人員只需要關(guān)注這個類如何使用,而不用去關(guān)心其具體的實(shí)現(xiàn)過程,這樣就能實(shí)現(xiàn)MVC分工合作,也能有效避免程序間相互依賴,實(shí)現(xiàn)代碼模塊間松藕合。
2)、繼承性:就是子類自動繼承其父級類中的屬性和方法,并可以可以添加新的屬性和方法或者對部分屬性和方法進(jìn)行重寫。繼承增加了代碼的可重用性。 php只支持單繼承,也就是說一個子類只能有一個父類。
3)、多態(tài)性(PHP不明顯,可不看):子類繼承了來自父級類中的屬性和方法,并對其中部分方法進(jìn)行重寫。于是多個子類中雖然都具有同一個方法,但是這些子類實(shí)例化的對象調(diào)用這些相同的方法后卻可以獲得完全不同的結(jié)果,這種技術(shù)就是多態(tài)性。多態(tài)性增強(qiáng)了軟件的靈活性。
4、OOP的優(yōu)點(diǎn):
1、代碼重用性高(省代碼)
2、使程序的可維護(hù)性高(擴(kuò)展性)
3、靈活性