資源描述:
《面向?qū)ο蟪绦蛟O(shè)計-php教學(xué)課件10》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、PHP+MySQL動態(tài)網(wǎng)頁技術(shù)教程主編:王彥輝10.1項目導(dǎo)引:圖書顯示模塊v過程化的編程v面向?qū)ο蟮某绦蛟O(shè)計(OOP)v基于面向?qū)ο蟮膱D書顯示模塊又該如何開發(fā)呢?10.2項目分析v面向?qū)ο蟮某绦蛟O(shè)計(OOP)是一種編程思想,它力圖使計算機語言中對事物的描述與現(xiàn)實世界中該事務(wù)的本來面目盡可能的一致,使代碼具有“物”的意義。v例如,我們要“自駕出游”,需要人開著車行駛,至于沿什么路線走我們不關(guān)心,只要求到達目的地。這里涉及到“人”和“車”兩個實物。人具有“姓名”、“性別”等特征和“開車”等行為。汽車具有“車牌號”、“顏色”等特征和“行駛”等行為。上述問題反映到軟件
2、系統(tǒng)中,就是我們要講的面向?qū)ο?,現(xiàn)實中所提到的“車”和“人”,將會在面向?qū)ο笾斜怀橄蟪深悾哂芯唧w特征和行為的“車”和“人”視為對象,“車”和“人”的特征和行為視為對象的屬性和方法。10.2項目分析v面向?qū)ο蟮乃枷雭碓从谌藗儗ΜF(xiàn)實世界的認知,符合人們討論事物的探究“是什么,做什么,怎么做”的一般規(guī)律。面向?qū)ο缶褪菍⒁幚淼膯栴}抽象為對象,然后通過對象的屬性和行為來解決對象的實際問題。v在圖書顯示開發(fā)模塊中,我們把“數(shù)據(jù)庫”抽象為類,具體的圖書商城數(shù)據(jù)庫視為對象,連接數(shù)據(jù)庫需要主機名、賬戶、密碼、數(shù)據(jù)庫名等特征,這些特征視為數(shù)據(jù)庫對象的屬性,數(shù)據(jù)庫的添加、修改、刪
3、除和查詢等行為視為數(shù)據(jù)庫對象的方法。10.3技術(shù)準(zhǔn)備v10.3.1面向?qū)ο蟮幕靖拍頽1.什么是類n屬性、方法n2.什么是對象n3.類和對象的關(guān)系10.3技術(shù)準(zhǔn)備v10.3.2類的聲明n1.類的定義n和很多面向?qū)ο笳Z言一樣,在PHP中也是通過class關(guān)鍵字來定義類的。語法格式如下:n權(quán)限修飾符class類名{n類體;n}n權(quán)限修飾符是可選項,值可以為public、protected和private,也可以省略不寫;nclass是創(chuàng)建類的關(guān)鍵字;n類名可以是任意數(shù)字和字母的組合,但是不能以數(shù)字開頭;n類體必須放在兩個大括號之間。10.3技術(shù)準(zhǔn)備v10.3.2類的
4、聲明n2.成員屬性n類中可以定義稱之為屬性的特定變量,用來存儲對象不同的屬性信息。n要求必須使用public、private和protected三個限定詞之一來修飾n3.成員方法n在類中聲明的函數(shù)稱之為成員方法。成員屬性可以讓對象存儲數(shù)據(jù),成員方法則可以讓對象執(zhí)行任務(wù)n例10-110.3技術(shù)準(zhǔn)備v10.3.3類的實例化n1.創(chuàng)建對象n面向?qū)ο蟪绦虻淖罱K操作者是對象,而對象是類實例化的產(chǎn)物。定義好一個類之后,就可以使用new關(guān)鍵字來創(chuàng)建一個基于該類的對象,類的實例化的格式如下。n$變量名=new類名稱()n$變量名:類實例化返回的對象名;nnew:關(guān)鍵字,表明要創(chuàng)
5、建一個新的對象。n例10-210.3技術(shù)準(zhǔn)備v2.訪問類中的成員n類中包括成員屬性和成員方法,實例化的對象中就會包含這些屬性和方法。當(dāng)我們需要訪問這些屬性時,用“->”運算符來引用他們。n例10-3v3.“$this”關(guān)鍵字n我們使用“變量對象名->…”在對象的外部調(diào)用它的某些屬性和方法。那么,當(dāng)一個類還沒有實例化的時候,如何訪問成員屬性和方法呢?即在類的內(nèi)部如何訪問自身成員屬性和方法?我們使用一個特殊的對象引用方法“$this”關(guān)鍵字。n例10-410.3技術(shù)準(zhǔn)備v4.構(gòu)造方法和析構(gòu)方法n構(gòu)造方法是在使用new關(guān)鍵字創(chuàng)建對象時自動調(diào)用的方法,通常用于完成類的初
6、始化工作。在PHP5中使用“__construct()”來聲明構(gòu)造方法(__是兩個下劃線),語法格式如下:nfunction?__construct([mixed?args[,…]]){?n}?n在PHP中,一個類只能聲明一個構(gòu)造方法,構(gòu)造方法可以有參數(shù)。n析構(gòu)方法的作用和構(gòu)造方法正好相反,是對象被銷毀之前最后一個被對象自動調(diào)用的方法,用于實現(xiàn)在銷毀一個對象之前執(zhí)行一些特定的操作,諸如關(guān)閉文件和釋放內(nèi)存等。析構(gòu)方法使用“__destruct()”聲明n例10-510.3技術(shù)準(zhǔn)備v10.3.4類的繼承性n繼承是類的強大功能,是面向?qū)ο蟮某绦蛟O(shè)計的特點之一,它使一個
7、類繼承并擁有另一個已存在類的成員屬性和成員方法,其中被繼承的類稱為父類,繼承的類稱為子類。通過繼承能夠提高代碼的重用性和可維護性。n類的繼承是類與類之間的一種關(guān)系的體現(xiàn)。子類從父類繼承了所有的屬性和方法(私有屬性和方法不能被繼承),在子類中也可以添加自己的屬性和方法,從而擴充子類的功能,子類繼承父類的屬性和方法不能被注銷,也不能減少,但是可以用新的值來覆蓋他們。10.3技術(shù)準(zhǔn)備v10.3.4類的繼承性n1.extends關(guān)鍵字n一個子類可以從一個父類中繼承屬性和方法,這叫做單繼承;也可以從多個父類中同時繼承屬性和方法,這叫做多繼承。PHP5不支持多繼承,在PHP
8、中使用extends關(guān)鍵