




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PHP面向?qū)ο蠛蠖芫W(wǎng) 2012-2013 v2.0 后盾網(wǎng) 人人做后盾編輯課件對(duì)象早期編程由于受電腦硬件限制,程序都是追求效率,而忽略可理解性、擴(kuò)充性,隨著硬件技術(shù)的發(fā)展,編程越來越重視多人開發(fā),程序員越來越重視程序的可靠性、可擴(kuò)展性、可維護(hù)性,所以刺激了程序語言的發(fā)展面向過程:程序員設(shè)計(jì)好程序代碼流程圖,輔助程序設(shè)計(jì)。優(yōu)點(diǎn):用什么功能就編寫什么函數(shù) 缺點(diǎn):數(shù)據(jù)管理上比較混亂 ,主要集中在函數(shù)成面上,面向?qū)ο蟀褜傩院头椒ㄟM(jìn)行封裝,更好的可重用性和可擴(kuò)展性面向?qū)ο螅喝f物皆對(duì)象,將構(gòu)成問題的事務(wù)分解到各個(gè)對(duì)象上,建立對(duì)象的目的不是為了完成一個(gè)工作,而是為了描述某個(gè)事務(wù)在解決問題中的行為,更符合人的
2、思維習(xí)慣,代碼重用性高,可擴(kuò)展性好編輯課件類的概念類:是一種抽象的概念,是具有相同語義定義對(duì)象的集合(具有相同屬性和方法的集體),使用具體的類是不可行的,只能實(shí)例化。拿汽車舉例,汽車的設(shè)計(jì)圖紙就是類,汽車是對(duì)象。設(shè)計(jì)中重點(diǎn)是類的創(chuàng)建現(xiàn)實(shí)生活中類的概念:萬物皆為對(duì)象,如我們使用的具體電腦就是對(duì)象,那電腦就是一個(gè)類。比如你手上拿著的 iphone手機(jī) 是一個(gè)對(duì)象,對(duì) 手機(jī) 則是一個(gè)類類名書寫規(guī)范:類名首字母大寫編輯課件對(duì)象對(duì)象句柄:用于區(qū)分不同對(duì)象。對(duì)象創(chuàng)建后,在內(nèi)存中獲取一塊存儲(chǔ)空間,儲(chǔ)存空間的地址就是對(duì)象的標(biāo)識(shí)或句柄屬性:在類中定義的變量,即為成員屬性,用于描述對(duì)象特性的數(shù)據(jù)。如人的姓名,性別
3、,首字母小寫方法:函數(shù)定義在類中即為成員方法,用于描述對(duì)象動(dòng)態(tài)特性的操作行為,方法名不區(qū)分大小寫,不可重名,首字母小寫對(duì)象的生命周期:對(duì)象創(chuàng)建后,生命周期開始,當(dāng)程序結(jié)束或程序員清除對(duì)象后即銷毀,PHP會(huì)自動(dòng)銷毀對(duì)象編輯課件對(duì)象產(chǎn)生的步驟在內(nèi)存中開辟出對(duì)象的空間執(zhí)行構(gòu)造方法將對(duì)象的引用地址返回編輯課件對(duì)象的內(nèi)存分布對(duì)象引用被放到了 棧區(qū) 里(棧區(qū) 存放固定內(nèi)容)對(duì)象是放在 堆區(qū) 里(堆區(qū) 存放可變內(nèi)容)靜態(tài)成員放到 數(shù)據(jù)區(qū) ,在第一次加載時(shí)候放入,可讓 堆區(qū) 的每個(gè)對(duì)象共享函數(shù)和方法放在 代碼區(qū)編輯課件對(duì)象的內(nèi)存分布棧 區(qū)$lisi$wangwu堆 區(qū)初始化數(shù)據(jù)區(qū)代碼區(qū)name = 李四;ag
4、e = 21;name = 王五;age = 24;$this$thisperson類的代碼結(jié)構(gòu)run() code()self: parent:self: parent:X 類的代碼結(jié)構(gòu)成員方法static 靜態(tài)屬性編輯課件對(duì)象的生命周期程序腳本執(zhí)行完成后,PHP運(yùn)行回收機(jī)制,刪除內(nèi)存中的對(duì)象刪除所有對(duì)象的引用后,對(duì)象即為垃圾,回收機(jī)制自動(dòng)刪除垃圾編輯課件面向?qū)ο蟮奶匦苑庋b把成員方法和成員屬性封裝到類中,隱藏屬性和方法,隱藏方法實(shí)現(xiàn)的細(xì)節(jié),通過 public protected private static 限定類成員的訪問權(quán)限,數(shù)據(jù)被保護(hù)在內(nèi)部,只有通過被授權(quán)的成員方法才可以操作;繼承可以
5、使一個(gè)類繼承并擁有另一個(gè)已經(jīng)存在類的成員屬性和方法,被繼承的類稱為父類或基類,繼承類為子類。使用 extends 關(guān)鍵字 實(shí)現(xiàn)繼承關(guān)系;多態(tài)相同的操作或函數(shù)、過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果;抽象性把一類對(duì)象的共有屬性和方法抽象出來,形成類,這種思考方式為抽象;編輯課件模塊設(shè)計(jì)publlic 公有定義類的 屬性 和 方法 在類內(nèi)部與外部或子類都可訪問,是最開放的權(quán)限private 私有的定義類的 屬性 和 方法 只在類內(nèi)部可以訪問,在類的外部或子類都不可訪問protected 受保護(hù)的定義類的 屬性 和 方法 只在類內(nèi)部或子類可以訪問,類的外部不可訪問模塊設(shè)計(jì)強(qiáng)內(nèi)聚(功能盡量在類的
6、內(nèi)部完成),弱耦合(開放盡量少的方法給外部調(diào)用)編輯課件模塊設(shè)計(jì)final/最終的當(dāng)確定為最終類或方法時(shí),用于說明該類不能繼承,該方法不能重寫。比如開發(fā)時(shí)確定這個(gè)方法為最終方法或計(jì)劃不允許別人重寫時(shí)可定義為 finalconst/類常量定義在類中的常量為類常量,通過 const 關(guān)鍵字來定義,不可以修改,比如定義個(gè)人所得稅率編輯課件類的靜態(tài)成員static一個(gè)數(shù)據(jù)只服務(wù)于類(即類內(nèi)部可用,對(duì)外不可用)。創(chuàng)建對(duì)象是極其耗費(fèi)資源的,因此當(dāng)一個(gè)方法具有比較強(qiáng)的公用性的時(shí)候,沒有必要為了調(diào)用這個(gè)方法而重新生成該類的實(shí)例。定義的方法或變量在程序第一次加載時(shí)即駐留內(nèi)存,程序結(jié)束釋放。靜態(tài)方法不能被非靜態(tài)方
7、法重寫,構(gòu)造方法不允許聲明為 staticstatic 變量:通過static聲明的成員變量為靜態(tài)變量或叫類變量,是該類的公共變量,類創(chuàng)建時(shí)即存入內(nèi)存,對(duì)該類的所有對(duì)象只有一份,是屬于類的,不是屬于對(duì)象的;靜態(tài)變量可以在任何地方通過類來訪問,是類的全局變量,對(duì)多個(gè)對(duì)象來說,靜態(tài)數(shù)據(jù)成員只存儲(chǔ)一處,可以節(jié)省內(nèi)存。static方法:用static聲明的方法為靜態(tài)方法或叫類方法,執(zhí)行該方法時(shí)不會(huì)將對(duì)象引用傳給函數(shù),所以我們不能訪問非靜態(tài)成員,只能訪問靜態(tài)方法或靜態(tài)變量。只能使用關(guān)于類的方式如 self static parent 等。使用時(shí)不用生成對(duì)象即可執(zhí)行編輯課件引用$this當(dāng)前對(duì)象的引用,
8、一般出現(xiàn)在方法里, 用于獲取類的成員屬性或執(zhí)行類的成員方法self:對(duì)本類的引用 ,用于獲取當(dāng)前類的靜態(tài)成員屬性或靜態(tài)成員方法parent:對(duì)父類的引用,調(diào)用父類的方法或?qū)傩跃庉嬚n件構(gòu)造方法&析構(gòu)方法構(gòu)造方法在創(chuàng)建對(duì)象時(shí)自動(dòng)執(zhí)行,沒有返回值,用于執(zhí)行類的一些初始化工作,如對(duì)象屬性的初始化工作,PHP4中構(gòu)造方法必須與類同名,PHP5中規(guī)定構(gòu)造方法為_construct(),優(yōu)點(diǎn)是不受類名的影響,如果不存在 _construct() PHP會(huì)搜索與類同名的方法自動(dòng)執(zhí)行,如果沒有定義構(gòu)造方法PHP會(huì)自動(dòng)填加一個(gè)沒有參數(shù)和方法體的構(gòu)造方法,可以在構(gòu)造方法中傳遞參數(shù),用于定義屬性,注意順序,尤其是空值
9、時(shí),在父類和子類都定義構(gòu)造方法時(shí),執(zhí)行子類的構(gòu)造方法析構(gòu)方法用于對(duì)象在內(nèi)存中被銷毀時(shí)自動(dòng)執(zhí)行的方法,不帶任何參數(shù)編輯課件重寫與覆蓋子類可以根據(jù)需要對(duì)從父類繼承過來的方法進(jìn)行覆蓋(也叫重寫),必須和被覆蓋的方法有相同方法名。不能在同類中定義同名方法。某些時(shí)候,父類的方法不能完全滿足需求時(shí),可以在子類中重寫父類的方法,通過重寫主要實(shí)現(xiàn)對(duì)父類方法的功能擴(kuò)展編輯課件抽象類與抽象方法通過 abstract 關(guān)鍵字定義的方法為抽象方法,具有抽象方法的類為抽象類,抽象方法即為沒有內(nèi)容的空方法,要求子類進(jìn)行完善內(nèi)容,抽象類不能實(shí)例化,只能繼承,通過 extends 來實(shí)現(xiàn),抽象類中也可以定義普通方法父類方法執(zhí)
10、行方式不確定,但子類都有這個(gè)方法當(dāng)父類為抽象類時(shí),子類必須重寫父類的抽象方法抽象類里不一定要寫抽象方法,但有抽象方法的類必須定義為抽象類抽象類必須繼承使用抽象方法不能有主體即 . 編輯課件接口intrerface 接口是一組成員聲明方法的集合,包含空的成員方法和常量,空的方法要求繼承類去具體實(shí)現(xiàn)。成員方法為 public,屬性為 const。抽象類及普通類都可以實(shí)現(xiàn)接口,通過關(guān)鍵字 implements接口與抽象類的區(qū)別:接口只能用 implements 實(shí)現(xiàn),抽象類用 extends 繼承實(shí)現(xiàn)接口沒有數(shù)據(jù)成員,可以定義常量,抽象類可以有接口沒有構(gòu)造函數(shù),抽象類可以定義構(gòu)造函數(shù)接口方法都是 p
11、ublic 抽象類方法可用 protected private public 來修飾一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)抽象類接口中不可有成員方法 ,抽象類可以有成員方法編輯課件魔術(shù)常量_CLASS_/返回該類被定義時(shí)的名字(區(qū)分大小寫)_METHOD_/返回該方法被定義時(shí)的名字(區(qū)分大小寫)_FUNCTION_/返回該函數(shù)被定義時(shí)的名字(區(qū)分大小寫)_DIR_/如果用在被包括文件中,則返回被包括的文件所在的目錄。它等價(jià)于 dirname(_FILE_)注:PHP 5.3.0中新增_FILE_ /文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名編輯課件魔術(shù)方法clone/克
12、隆對(duì)象復(fù)制一個(gè)完全一樣的對(duì)象,但與原對(duì)象沒有任何關(guān)系,$obj2 = clone $obj;如果用intval($obj2=$obj)返回1因?yàn)橹慌袛鄡?nèi)容,intval($obj2 =$obj)返回0因?yàn)檫€要判斷引用_call()調(diào)用一個(gè)未定義的方法時(shí),自動(dòng)執(zhí)行的魔術(shù)函數(shù)2個(gè)參數(shù) 1:方法名 2:參數(shù)數(shù)組編輯課件魔術(shù)方法_isset()檢測(cè)對(duì)象里面的私有成員屬性是否存在_unset()是個(gè)共有的方法,用來刪除對(duì)象里的私有成員屬性_get()獲取對(duì)象未定義的屬性時(shí),自動(dòng)運(yùn)行的魔術(shù)函數(shù)_set()給未定義的屬性賦值時(shí),自動(dòng)運(yùn)行的魔術(shù)函數(shù)可將set設(shè)置的未定義屬性存到類的數(shù)組類型成員屬性get時(shí)再找相應(yīng)變量索引編輯課件魔術(shù)方法_autoload($className) 引用一個(gè)類時(shí)自動(dòng)執(zhí)行的函數(shù),可以讀入類文件可以通過spl_autoload_register(array(a,run);來指定新的魔術(shù)函數(shù),但是函數(shù)要是static的編輯課件對(duì)象的相關(guān)函數(shù)get_class_methods($class_name)返回由類的方法名組成的數(shù)組,可以指定對(duì)象本身來代替 class_nameget_class_vars() 返回由類的默認(rèn)屬性組成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家紡企業(yè)社會(huì)責(zé)任報(bào)告編寫考核試卷
- 面門出租合同范本
- 電影合同范本4篇
- 煤炭居間費(fèi)合同范本
- 小學(xué)生頒獎(jiǎng)視頻模板課件
- 基于大數(shù)據(jù)的智能種植管理平臺(tái)構(gòu)建
- 人才派遣與招聘協(xié)議
- 日常照護(hù)培訓(xùn)課件
- 農(nóng)業(yè)生產(chǎn)安全防范指南
- 互聯(lián)網(wǎng)行業(yè)數(shù)據(jù)安全防護(hù)策略
- 靜脈藥物配置中心課件
- DB11T 852-2019 有限空間作業(yè)安全技術(shù)規(guī)范
- 材料化學(xué)合成與制備技術(shù)
- 金屬工藝學(xué)(鑄造)課件
- DB23∕T 343-2003 國有林區(qū)更新造林技術(shù)規(guī)程
- 醫(yī)療廢物管理組織機(jī)構(gòu)架構(gòu)圖
- cjj/t135-2009《透水水泥混凝土路面技術(shù)規(guī)程》
- 短時(shí)耐受電流
- 社保人事專員績(jī)效考核表
- 上海世博會(huì)對(duì)上海城市競(jìng)爭(zhēng)力影響的評(píng)估模型
- 河南書法家協(xié)會(huì)入會(huì)申請(qǐng)表
評(píng)論
0/150
提交評(píng)論