《Web程序設(shè)計(jì)》-第六講 面向?qū)ο箝_發(fā)_第1頁(yè)
《Web程序設(shè)計(jì)》-第六講 面向?qū)ο箝_發(fā)_第2頁(yè)
《Web程序設(shè)計(jì)》-第六講 面向?qū)ο箝_發(fā)_第3頁(yè)
《Web程序設(shè)計(jì)》-第六講 面向?qū)ο箝_發(fā)_第4頁(yè)
《Web程序設(shè)計(jì)》-第六講 面向?qū)ο箝_發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、JYPC第六講第六講 面向?qū)ο箝_發(fā)面向?qū)ο箝_發(fā)版權(quán)所有版權(quán)所有 計(jì)算機(jī)科學(xué)系軟件教研室計(jì)算機(jī)科學(xué)系軟件教研室Web程序設(shè)計(jì)程序設(shè)計(jì)目錄目錄v面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)v對(duì)象的概念對(duì)象的概念v創(chuàng)建和使用類創(chuàng)建和使用類v類的結(jié)構(gòu)與定義類的結(jié)構(gòu)與定義v類成員類成員v訪問(wèn)修飾符訪問(wèn)修飾符v$this關(guān)鍵字關(guān)鍵字v構(gòu)造方法構(gòu)造方法v類的繼承類的繼承目錄目錄vparents:和和slef:關(guān)鍵字關(guān)鍵字v類常量類常量v靜態(tài)成員變量和方法靜態(tài)成員變量和方法v對(duì)象類型檢測(cè)對(duì)象類型檢測(cè)instanceofv類的多態(tài)性類的多態(tài)性v抽象方法與抽象類抽象方法與抽象類v接口的實(shí)現(xiàn)接口的實(shí)現(xiàn)面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)v 面向?qū)?/p>

2、象編程(面向?qū)ο缶幊蹋∣OP)起源于)起源于20世紀(jì)世紀(jì)60年代,直到年代,直到20世紀(jì)世紀(jì)90年代才成為應(yīng)用軟件開發(fā)的主流,而如今從應(yīng)用年代才成為應(yīng)用軟件開發(fā)的主流,而如今從應(yīng)用軟件時(shí)代過(guò)渡到軟件時(shí)代過(guò)渡到Web,面向?qū)ο笏枷肴匀痪邆錁O大的應(yīng),面向?qū)ο笏枷肴匀痪邆錁O大的應(yīng)用價(jià)值。用價(jià)值。v 面向?qū)ο箝_發(fā)方法包括面向?qū)ο箝_發(fā)方法包括 面向?qū)ο蠓治鯫OA 面向?qū)ο笤O(shè)計(jì)OOD 面向?qū)ο缶幊蘋OPv 了解了解OOP,先要理解數(shù)據(jù)抽象,數(shù)據(jù)抽象是一個(gè)基本的,先要理解數(shù)據(jù)抽象,數(shù)據(jù)抽象是一個(gè)基本的數(shù)據(jù)類型,以及在這個(gè)數(shù)據(jù)類型上可以實(shí)現(xiàn)的操作集合,數(shù)據(jù)類型,以及在這個(gè)數(shù)據(jù)類型上可以實(shí)現(xiàn)的操作集合,用戶不用

3、關(guān)心這個(gè)類型是如何實(shí)現(xiàn)的,只需要知道該類型用戶不用關(guān)心這個(gè)類型是如何實(shí)現(xiàn)的,只需要知道該類型上定義了哪些操作。上定義了哪些操作。面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)v面向?qū)ο缶幊蹋嫦驅(qū)ο缶幊蹋∣OP)三大特點(diǎn)是:封裝、繼承)三大特點(diǎn)是:封裝、繼承和多態(tài)。和多態(tài)。v使用面向?qū)ο缶幊蹋ㄊ褂妹嫦驅(qū)ο缶幊蹋∣OP)架構(gòu)開發(fā)應(yīng)用程序的)架構(gòu)開發(fā)應(yīng)用程序的優(yōu)點(diǎn):優(yōu)點(diǎn): 容易分發(fā)代碼,方便系統(tǒng)二次開發(fā) 促進(jìn)代碼整潔及重用 促進(jìn)可擴(kuò)展性、代碼彈性,以及適應(yīng)性 適合于團(tuán)隊(duì)開發(fā) OOP有很多設(shè)計(jì)模式可利用,可以直接再次利用和開發(fā)對(duì)象的概念對(duì)象的概念v理解理解“萬(wàn)事萬(wàn)物皆對(duì)象萬(wàn)事萬(wàn)物皆對(duì)象”創(chuàng)建和使用類創(chuàng)建和使用類v創(chuàng)建和使

4、用類的步驟:創(chuàng)建和使用類的步驟: 編寫類的語(yǔ)句段 將要使用的對(duì)象的類文件包含到當(dāng)前腳本中 在腳本中創(chuàng)建一個(gè)對(duì)象 使用新對(duì)象類的結(jié)構(gòu)與定義類的結(jié)構(gòu)與定義v類是對(duì)象的模板。在準(zhǔn)備創(chuàng)建類之前,應(yīng)該確定類是對(duì)象的模板。在準(zhǔn)備創(chuàng)建類之前,應(yīng)該確定項(xiàng)目中需要的對(duì)象屬性和方法。項(xiàng)目中需要的對(duì)象屬性和方法。v類的定義與結(jié)構(gòu)類的定義與結(jié)構(gòu)v類的實(shí)例化類的實(shí)例化$tempCar = new Mycar();類成員類成員v字段和方法是最重要的類成員類型。字段是數(shù)據(jù)字段和方法是最重要的類成員類型。字段是數(shù)據(jù)成員,方法是函數(shù)成員。成員,方法是函數(shù)成員。v字段字段隸屬于類的變量隸屬于類的變量 它可以是任何類型,無(wú)論是預(yù)定

5、義還是用戶定義類型 和所有變量一樣,字段用來(lái)保存數(shù)據(jù) 可以被寫入 可以被讀取class MyCarpublic $name; /定義一個(gè)名為name的字段類成員類成員v方法方法具有名稱的可執(zhí)行代碼塊,可以從程序具有名稱的可執(zhí)行代碼塊,可以從程序的很多不同地方執(zhí)行,甚至從其他程序中執(zhí)行的很多不同地方執(zhí)行,甚至從其他程序中執(zhí)行 返回類型,它聲明了方法返回值的類型。如果沒(méi)有返回值,默認(rèn)不寫 名稱:方法的名稱 參數(shù)列表:它由至少一對(duì)空的圓括號(hào)組成。如果有參數(shù),它們被列在圓括號(hào)中間 方法體:它由一對(duì)大括號(hào)組成,大括號(hào)內(nèi)包含執(zhí)行代碼 由function來(lái)聲明類成員類成員訪問(wèn)修飾符訪問(wèn)修飾符修飾符修飾符含義

6、含義public表示該方法或字段可以在任何范圍被調(diào)用表示該方法或字段可以在任何范圍被調(diào)用protected表示該方法或字段可以在類中和繼承的子類中被調(diào)用表示該方法或字段可以在類中和繼承的子類中被調(diào)用private表示該方法或字段只能從類中調(diào)用,不能從繼承類中調(diào)用表示該方法或字段只能從類中調(diào)用,不能從繼承類中調(diào)用$this關(guān)鍵字關(guān)鍵字v在一個(gè)類中,在一個(gè)類中,$this是一個(gè)特殊的變量,并且只是一個(gè)特殊的變量,并且只能在類的內(nèi)部使用,用以獲取類中某個(gè)成員變量能在類的內(nèi)部使用,用以獲取類中某個(gè)成員變量的值。的值。v使用使用$this的格式如下的格式如下 $this-varnameclass MyC

7、arpublic $name;function Drive() echo”我正在開”.$this-name.”牌的車”;構(gòu)造方法構(gòu)造方法v構(gòu)造方法的作用是初始化類的成員字段。構(gòu)造方法的作用是初始化類的成員字段。v在在PHP5中,創(chuàng)建構(gòu)造方法規(guī)定使用如下名稱中,創(chuàng)建構(gòu)造方法規(guī)定使用如下名稱(注意,是兩條下劃線)(注意,是兩條下劃線) _construct()v如果在一個(gè)類中沒(méi)有顯示聲明如果在一個(gè)類中沒(méi)有顯示聲明_construct()構(gòu)造方法,構(gòu)造方法,PHP會(huì)自動(dòng)生成默認(rèn)的構(gòu)造方法,該會(huì)自動(dòng)生成默認(rèn)的構(gòu)造方法,該方法沒(méi)有任何內(nèi)容,它不接受任何參數(shù)。方法沒(méi)有任何內(nèi)容,它不接受任何參數(shù)。構(gòu)造方法構(gòu)

8、造方法name;echo”尺寸:”.$this-size;echo”顏色:”.$this-color;echo”價(jià)格:”.$this-price;echo”車型:”.$this-type;?$bieke=new MyCar();$bieke-name=“凱越”;$bieke-size=“410*180*170”;$bieke-price=“140000”;$bieke-color=“鉑灰”;$bieke-type=“轎車”;$bieke-Drive();構(gòu)造方法構(gòu)造方法vQ & A 如何用構(gòu)造函數(shù)來(lái)重寫以上類?類的繼承類的繼承v面向?qū)ο缶幊蹋嫦驅(qū)ο缶幊蹋∣OP)的一大好處是,可以使用

9、)的一大好處是,可以使用類再次類再次”繼承繼承“已有的類,被繼承的類稱為父類已有的類,被繼承的類稱為父類或基類,子類將繼承父類所有的方法和字段,因或基類,子類將繼承父類所有的方法和字段,因此提高了代碼的重用性,提高軟件開發(fā)效率。此提高了代碼的重用性,提高軟件開發(fā)效率。v關(guān)鍵字:關(guān)鍵字:extends類的繼承類的繼承class Fatherpublic $money=“1000000”;public $horse=“別墅”;function Drive()echo”開寶馬7系列車”;class Son extends Father/不定義任何方法和字段$temp = new Son();echo

10、 $temp-money;echo $temo-horse;$temp-Drive();parents:和和slef:關(guān)鍵字關(guān)鍵字vself:指當(dāng)前類,通常用來(lái)獲取靜態(tài)成員、方法指當(dāng)前類,通常用來(lái)獲取靜態(tài)成員、方法和常量和常量vparents:指的是父類和要調(diào)用的父類中的成員指的是父類和要調(diào)用的父類中的成員方法,也可以用來(lái)獲取成員變量和常量方法,也可以用來(lái)獲取成員變量和常量parents:和和slef:關(guān)鍵字關(guān)鍵字類常量類常量v類常量是定義在類中的常量,如果我們使用類常量是定義在類中的常量,如果我們使用const關(guān)鍵字來(lái)修飾該常量,那么該常量就被稱關(guān)鍵字來(lái)修飾該常量,那么該常量就被稱為類常量。

11、為類常量。v類常量定義就不能再進(jìn)行賦值操作。類常量定義就不能再進(jìn)行賦值操作。v類常量訪問(wèn)類常量訪問(wèn) 外部訪問(wèn):類名:常量名稱 內(nèi)部訪問(wèn):self:常量名稱class Computerconst COMPUTER_TYPE = 1;const COMPUTER_FACTORY = “CN”;echo Computer:COMPUTER_FACTORY.”n”;靜態(tài)成員變量和方法靜態(tài)成員變量和方法v由由static關(guān)鍵字聲明的成員變量和方法稱為靜態(tài)關(guān)鍵字聲明的成員變量和方法稱為靜態(tài)成員變量和方法。成員變量和方法。v靜態(tài)成員訪問(wèn)時(shí)不需要實(shí)例化類,而是直接訪問(wèn),靜態(tài)成員訪問(wèn)時(shí)不需要實(shí)例化類,而是直接訪

12、問(wèn),格式如下:格式如下: 類名:靜態(tài)成員變量 類名:靜態(tài)方法名稱v另:另:parent:和和self:同樣適合靜態(tài)成員變量和同樣適合靜態(tài)成員變量和方法。方法。對(duì)象類型檢測(cè)對(duì)象類型檢測(cè)instanceofv功能:檢測(cè)當(dāng)前對(duì)象是否屬于某一個(gè)類的類型功能:檢測(cè)當(dāng)前對(duì)象是否屬于某一個(gè)類的類型v返回值:返回值:bool邏輯值邏輯值類的多態(tài)性類的多態(tài)性v多態(tài)性概括:子類可以以父類的身份出現(xiàn)多態(tài)性概括:子類可以以父類的身份出現(xiàn) 抽象方法與抽象類抽象方法與抽象類v抽象類是一種不能被實(shí)例化的類,它主要用于為抽象類是一種不能被實(shí)例化的類,它主要用于為繼承的子類定義界面,在抽象類里面的成員方法繼承的子類定義界面,在抽象類里面的成員方法都是沒(méi)有具體實(shí)現(xiàn)的方法。都是沒(méi)有具體實(shí)現(xiàn)的方法。v采用采用abstract關(guān)鍵字來(lái)修飾。關(guān)鍵字來(lái)修飾。v如果抽象類的子類沒(méi)有實(shí)現(xiàn)父類的全部方法,那如果抽象類的子類沒(méi)有實(shí)現(xiàn)父類的全部方法,那子類也是抽象類,也不能被實(shí)例化。子類也是抽象類,也不能被實(shí)例化。接口的實(shí)現(xiàn)接口的實(shí)現(xiàn)v通過(guò)類的繼承可以實(shí)現(xiàn)一個(gè)父子關(guān)系的描述,如通過(guò)類的繼承可以實(shí)現(xiàn)一個(gè)父子關(guān)系的描述,如果要實(shí)現(xiàn)多重繼承,就要使用接口果要實(shí)現(xiàn)多重繼承,就要使用接口(interface),接口提供了多重繼承的功能實(shí)),接口提供了多重繼承的功能實(shí)現(xiàn)?,F(xiàn)。v實(shí)現(xiàn)接口就必須實(shí)現(xiàn)接口中的所有方法。實(shí)現(xiàn)接口就必須實(shí)現(xiàn)接口中的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論