




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、JYPC第六講第六講 面向?qū)ο箝_發(fā)面向?qū)ο箝_發(fā)版權(quán)所有版權(quán)所有 計算機(jī)科學(xué)系軟件教研室計算機(jī)科學(xué)系軟件教研室Web程序設(shè)計程序設(shè)計目錄目錄v面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)v對象的概念對象的概念v創(chuàng)建和使用類創(chuàng)建和使用類v類的結(jié)構(gòu)與定義類的結(jié)構(gòu)與定義v類成員類成員v訪問修飾符訪問修飾符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對象類型檢測對象類型檢測instanceofv類的多態(tài)性類的多態(tài)性v抽象方法與抽象類抽象方法與抽象類v接口的實現(xiàn)接口的實現(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)用軟件時代過渡到軟件時代過渡到Web,面向?qū)ο笏枷肴匀痪邆錁O大的應(yīng),面向?qū)ο笏枷肴匀痪邆錁O大的應(yīng)用價值。用價值。v 面向?qū)ο箝_發(fā)方法包括面向?qū)ο箝_發(fā)方法包括 面向?qū)ο蠓治鯫OA 面向?qū)ο笤O(shè)計OOD 面向?qū)ο缶幊蘋OPv 了解了解OOP,先要理解數(shù)據(jù)抽象,數(shù)據(jù)抽象是一個基本的,先要理解數(shù)據(jù)抽象,數(shù)據(jù)抽象是一個基本的數(shù)據(jù)類型,以及在這個數(shù)據(jù)類型上可以實現(xiàn)的操作集合,數(shù)據(jù)類型,以及在這個數(shù)據(jù)類型上可以實現(xiàn)的操作集合,用戶不用
3、關(guān)心這個類型是如何實現(xiàn)的,只需要知道該類型用戶不用關(guān)心這個類型是如何實現(xiàn)的,只需要知道該類型上定義了哪些操作。上定義了哪些操作。面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)v面向?qū)ο缶幊蹋嫦驅(qū)ο缶幊蹋∣OP)三大特點是:封裝、繼承)三大特點是:封裝、繼承和多態(tài)。和多態(tài)。v使用面向?qū)ο缶幊蹋ㄊ褂妹嫦驅(qū)ο缶幊蹋∣OP)架構(gòu)開發(fā)應(yīng)用程序的)架構(gòu)開發(fā)應(yīng)用程序的優(yōu)點:優(yōu)點: 容易分發(fā)代碼,方便系統(tǒng)二次開發(fā) 促進(jìn)代碼整潔及重用 促進(jìn)可擴(kuò)展性、代碼彈性,以及適應(yīng)性 適合于團(tuán)隊開發(fā) OOP有很多設(shè)計模式可利用,可以直接再次利用和開發(fā)對象的概念對象的概念v理解理解“萬事萬物皆對象萬事萬物皆對象”創(chuàng)建和使用類創(chuàng)建和使用類v創(chuàng)建和使
4、用類的步驟:創(chuàng)建和使用類的步驟: 編寫類的語句段 將要使用的對象的類文件包含到當(dāng)前腳本中 在腳本中創(chuàng)建一個對象 使用新對象類的結(jié)構(gòu)與定義類的結(jié)構(gòu)與定義v類是對象的模板。在準(zhǔn)備創(chuàng)建類之前,應(yīng)該確定類是對象的模板。在準(zhǔn)備創(chuàng)建類之前,應(yīng)該確定項目中需要的對象屬性和方法。項目中需要的對象屬性和方法。v類的定義與結(jié)構(gòu)類的定義與結(jié)構(gòu)v類的實例化類的實例化$tempCar = new Mycar();類成員類成員v字段和方法是最重要的類成員類型。字段是數(shù)據(jù)字段和方法是最重要的類成員類型。字段是數(shù)據(jù)成員,方法是函數(shù)成員。成員,方法是函數(shù)成員。v字段字段隸屬于類的變量隸屬于類的變量 它可以是任何類型,無論是預(yù)定
5、義還是用戶定義類型 和所有變量一樣,字段用來保存數(shù)據(jù) 可以被寫入 可以被讀取class MyCarpublic $name; /定義一個名為name的字段類成員類成員v方法方法具有名稱的可執(zhí)行代碼塊,可以從程序具有名稱的可執(zhí)行代碼塊,可以從程序的很多不同地方執(zhí)行,甚至從其他程序中執(zhí)行的很多不同地方執(zhí)行,甚至從其他程序中執(zhí)行 返回類型,它聲明了方法返回值的類型。如果沒有返回值,默認(rèn)不寫 名稱:方法的名稱 參數(shù)列表:它由至少一對空的圓括號組成。如果有參數(shù),它們被列在圓括號中間 方法體:它由一對大括號組成,大括號內(nèi)包含執(zhí)行代碼 由function來聲明類成員類成員訪問修飾符訪問修飾符修飾符修飾符含義
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在一個類中,在一個類中,$this是一個特殊的變量,并且只是一個特殊的變量,并且只能在類的內(nèi)部使用,用以獲取類中某個成員變量能在類的內(nèi)部使用,用以獲取類中某個成員變量的值。的值。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如果在一個類中沒有顯示聲明如果在一個類中沒有顯示聲明_construct()構(gòu)造方法,構(gòu)造方法,PHP會自動生成默認(rèn)的構(gòu)造方法,該會自動生成默認(rèn)的構(gòu)造方法,該方法沒有任何內(nèi)容,它不接受任何參數(shù)。方法沒有任何內(nèi)容,它不接受任何參數(shù)。構(gòu)造方法構(gòu)
8、造方法name;echo”尺寸:”.$this-size;echo”顏色:”.$this-color;echo”價格:”.$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ù)來重寫以上類?類的繼承類的繼承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)前類,通常用來獲取靜態(tài)成員、方法指當(dāng)前類,通常用來獲取靜態(tài)成員、方法和常量和常量vparents:指的是父類和要調(diào)用的父類中的成員指的是父類和要調(diào)用的父類中的成員方法,也可以用來獲取成員變量和常量方法,也可以用來獲取成員變量和常量parents:和和slef:關(guān)鍵字關(guān)鍵字類常量類常量v類常量是定義在類中的常量,如果我們使用類常量是定義在類中的常量,如果我們使用const關(guān)鍵字來修飾該常量,那么該常量就被稱關(guān)鍵字來修飾該常量,那么該常量就被稱為類常量。
11、為類常量。v類常量定義就不能再進(jìn)行賦值操作。類常量定義就不能再進(jìn)行賦值操作。v類常量訪問類常量訪問 外部訪問:類名:常量名稱 內(nèi)部訪問: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)成員訪問時不需要實例化類,而是直接訪問,靜態(tài)成員訪問時不需要實例化類,而是直接訪
12、問,格式如下:格式如下: 類名:靜態(tài)成員變量 類名:靜態(tài)方法名稱v另:另:parent:和和self:同樣適合靜態(tài)成員變量和同樣適合靜態(tài)成員變量和方法。方法。對象類型檢測對象類型檢測instanceofv功能:檢測當(dāng)前對象是否屬于某一個類的類型功能:檢測當(dāng)前對象是否屬于某一個類的類型v返回值:返回值:bool邏輯值邏輯值類的多態(tài)性類的多態(tài)性v多態(tài)性概括:子類可以以父類的身份出現(xiàn)多態(tài)性概括:子類可以以父類的身份出現(xiàn) 抽象方法與抽象類抽象方法與抽象類v抽象類是一種不能被實例化的類,它主要用于為抽象類是一種不能被實例化的類,它主要用于為繼承的子類定義界面,在抽象類里面的成員方法繼承的子類定義界面,在抽象類里面的成員方法都是沒有具體實現(xiàn)的方法。都是沒有具體實現(xiàn)的方法。v采用采用abstract關(guān)鍵字來修飾。關(guān)鍵字來修飾。v如果抽象類的子類沒有實現(xiàn)父類的全部方法,那如果抽象類的子類沒有實現(xiàn)父類的全部方法,那子類也是抽象類,也不能被實例化。子類也是抽象類,也不能被實例化。接口的實現(xiàn)接口的實現(xiàn)v通過類的繼承可以實現(xiàn)一個父子關(guān)系的描述,如通過類的繼承可以實現(xiàn)一個父子關(guān)系的描述,如果要實現(xiàn)多重繼承,就要使用接口果要實現(xiàn)多重繼承,就要使用接口(interface),接口提供了多重繼承的功能實),接口提供了多重繼承的功能實現(xiàn)?,F(xiàn)。v實現(xiàn)接口就必須實現(xiàn)接口中的所有方法。實現(xiàn)接口就必須實現(xiàn)接口中的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2燕子(教學(xué)設(shè)計)-2023-2024學(xué)年統(tǒng)編版語文三年級下冊
- 山東管理學(xué)院《有機(jī)化學(xué)G》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建技術(shù)師范學(xué)院《推拿及運(yùn)動損傷治療》2023-2024學(xué)年第二學(xué)期期末試卷
- 韶關(guān)學(xué)院《化工設(shè)備基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴陽學(xué)院《基礎(chǔ)化學(xué)實驗(4)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黃淮學(xué)院《中學(xué)物理實驗訓(xùn)練與研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州幼兒師范高等??茖W(xué)校《肉制品加工技術(shù)實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 第16課《閱讀材料 為幻燈片“減肥”》教學(xué)設(shè)計 2023-2024學(xué)年青島版(2018)初中信息技術(shù)八年級下冊
- 濰坊科技學(xué)院《材料工程測試技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北黃岡應(yīng)急管理職業(yè)技術(shù)學(xué)院《無人駕駛汽車技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年茂名市高三年級第一次綜合測試(一模)物理試卷(含答案)
- 2025年重癥醫(yī)學(xué)科(ICU)護(hù)理工作計劃
- 四川省名校2025屆高三第二次模擬考試英語試卷含解析
- 2024各科普通高中課程標(biāo)準(zhǔn)
- 中小學(xué)校園課間時間巡查工作方案
- 《垂體瘤規(guī)范化診治》課件
- 早產(chǎn)臨床防治指南(2024版)解讀
- 艾草種植基地合同(2篇)
- GB/T 30661.10-2024輪椅車座椅第10部分:體位支撐裝置的阻燃性要求和試驗方法
- 空調(diào)制冷管道施工協(xié)議
- 2024-2030年藝術(shù)攝影服務(wù)產(chǎn)業(yè)發(fā)展分析及發(fā)展趨勢與投資前景預(yù)測報告
評論
0/150
提交評論