第9章 面向?qū)ο缶幊蘝第1頁
第9章 面向?qū)ο缶幊蘝第2頁
第9章 面向?qū)ο缶幊蘝第3頁
第9章 面向?qū)ο缶幊蘝第4頁
第9章 面向?qū)ο缶幊蘝第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章面向?qū)ο缶幊剃憚P李湘一焦慧華9.1面向?qū)ο蟮母拍铑悾侯惷枋隽艘唤M有相同屬性和相同行為的實(shí)物。對象:對象是系統(tǒng)中描述客觀事件的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。類和對象的關(guān)系:類是包含屬性和方法的集合。就像一張建筑工程的藍(lán)圖一樣,類本身不能做任何事情,它只是定義了一個(gè)對象所具有的屬性和方法,屬性用于描述對象,而方法用于定義對象的行為。類與對象的關(guān)系就如模具和鑄件的關(guān)系,類的實(shí)例化的結(jié)果就是對象,而對對象的抽象就是類,類描述了一組有相同特性(屬性)和相同行為的對象。面向?qū)ο蟮母拍?.2PHP和對象類的定義的語法格式如下:classclassname[可選屬性]{public$property[=value];…//定義類的屬性functionfunctionname(args){//定義類的方法

}類的實(shí)例化的語法格式如下:$對象名=new類名();可以利用print_r()函數(shù)來顯示對象的詳細(xì)信息,在顯示對象信息時(shí),將以數(shù)組的形式輸出。PHP和對象9.2PHP和對象類成員指的就是類的屬性。在PHP4中,類的屬性必須使用關(guān)鍵字var來聲明,而在PHP5中,引入了訪問的修飾符public、private和protected。它們可以控制屬性和方法的作用域,通常放置在屬性和方法的聲明之前。PHP5中支持以下三種不同的訪問修飾:默認(rèn)的是public(公共)

private(私有)

protected(保護(hù))類成員和作用域9.2PHP和對象構(gòu)造函數(shù)是類中的一個(gè)特殊函數(shù),當(dāng)用new來創(chuàng)建類的對象時(shí)會自動(dòng)執(zhí)行該函數(shù)。如果在聲明一個(gè)類時(shí)同時(shí)聲明了構(gòu)造函數(shù),則會在每次創(chuàng)建該類的對象時(shí)自動(dòng)調(diào)用此函數(shù),因此非常適合在使用對象之前完成一些初始化工作。具體查看實(shí)例9-5:構(gòu)造函數(shù)9.2PHP和對象類的析構(gòu)函數(shù)的名稱是__destruct,如果在類中聲明了該函數(shù),PHP在對象不再需要時(shí)會調(diào)用析構(gòu)函數(shù)將對象從內(nèi)存中銷毀。實(shí)例【test9-6】析構(gòu)函數(shù)<?phpclassrd_file{Public$file;function__construct(){$this->file=fopen('path','a');}function__destruct(){fclose($this->file);}}析構(gòu)函數(shù)9.2PHP和對象PHP類的繼承,我們可以理解成共享被繼承類的內(nèi)容。PHP中使用extends單一繼承的方法,被繼承的類我們叫做父類,繼承者稱為子類。PHP繼承的規(guī)則CLASS1------>CLASS2------>CLASS3依次被繼承,class3擁有class1、class2所以功能和屬性,避免方法和屬性重名。classsonextendsroot{};具體查看實(shí)例9-7:繼承9.3PHP對象的高級應(yīng)用如果我們希望某個(gè)類不被其它的類繼承(比如為了安全原因等),那么可以考慮使用finalfinal使用語法如下:finalclassA{}如果我們希望某個(gè)方法,不被子類重寫,可以考慮使用final來修飾,final修飾的方法還是可以繼承的,因?yàn)榉椒ǖ睦^承權(quán)取決于public的修飾。具體查看實(shí)例9-8:final關(guān)鍵字9.3PHP對象的高級應(yīng)用在我們實(shí)際開發(fā)過程中,有些類并不需要被實(shí)例化,如前面學(xué)習(xí)到的一些父類,主要是讓子類來繼承,這樣可以提高代碼復(fù)用性。語法結(jié)構(gòu)如下:abstractclass類名{屬性$name;方法(){}//方法也可以為abstract修飾符function方法名(){}}抽象類9.3PHP對象的高級應(yīng)用接口就是將一些沒有實(shí)現(xiàn)的方法,封裝在一起,到某個(gè)類要用的時(shí)候,再根據(jù)具體情況把這些方法寫出來;語法結(jié)構(gòu)如下:interface接口名{//屬性、方法//接口中的方法都不能有方法體;}實(shí)現(xiàn)接口代碼如下:class類名implements接口名{}理解:接口就是更加抽象的抽象類,抽象類里的方法可以有方法體,但是接口中的方法不能有方法體。接口實(shí)現(xiàn)了程序設(shè)計(jì)的多態(tài)和高內(nèi)聚、低偶合的設(shè)計(jì)思想;接口9.3PHP對象的高級應(yīng)用PHP可以使用clone關(guān)鍵字建立一個(gè)與原對象擁有相同屬性和方法的對象,這種方法適用于在一個(gè)類的基礎(chǔ)上實(shí)例化兩個(gè)類似對象的情況。語法結(jié)構(gòu)如下:$new_obj=clone$old_obj;其中$new_obj是新的對象名,$ol

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論