第7章 對象變量.ppt_第1頁
第7章 對象變量.ppt_第2頁
第7章 對象變量.ppt_第3頁
第7章 對象變量.ppt_第4頁
第7章 對象變量.ppt_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第7章 對象變量,第3章為讀者介紹了PHP中的常量與變量時,曾提到了一種特殊變量類型對象。由于對象變量不僅僅是簡單的變量,而且還牽涉很多與函數(shù)相關(guān)的內(nèi)容,所以在介紹完函數(shù)后,本章將為讀者詳細(xì)介紹對象這種特殊的變量。通過本章內(nèi)容的學(xué)習(xí),讀者將會了解到PHP的面向?qū)ο缶幊蹋∣OP)的特性,并領(lǐng)會該種編程模式與面向過程的不同。 在本章中,將重點學(xué)習(xí)以下內(nèi)容: 什么是面向過程 什么是面向?qū)ο?面向?qū)ο笈c面向過程的特點 詳述對象變量 使用類與對象,7.1 面向?qū)ο笈c面向過程,通常的編程語言所使用的方法有兩種:面向過程方法(C語言通常采用的方法)、面向?qū)ο螅∣OP)方法(Java語言通常采用的方法)。PH

2、P作為一種混合語言,同時兼有面向過程和面向?qū)ο筮@兩種能力。在學(xué)習(xí)對象這種特殊變量之前,先來了解一下什么是面向過程與面向?qū)ο蟆?7.1.1 什么是面向過程,“面向過程”是一種以事件為中心的編程思想。該種編程方法就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了。本書前6章所涉及的代碼幾乎全部都是面向過程的方法。 面向過程的代碼一般看起來會像這樣: ,7.1.2 什么是面向?qū)ο?“面向?qū)ο蟆保∣bject Oriented,簡稱OO)是一種以事物為中心的編程思想。為了達(dá)到7.1.1小節(jié)代碼中的輸出字符串的效果與面向過程不同,面向?qū)ο髸褂玫饺缦滤?/p>

3、的代碼: myprint(); ?,7.1.3 面向?qū)ο笈c面向過程的特點,通過7.1.1及7.1.2小節(jié)對面向?qū)ο笈c面向過程的介紹,可以發(fā)現(xiàn)二者存在以下方面的關(guān)系: 代碼封裝不同。 代碼可維護性不同。 流程控制不同。 框架利用不同。,7.2 對象變量,對象變量也屬于變量的一種,但又不同于一般的變量。和數(shù)組變量一樣,對象變量也是一種特殊的變量。對象變量的定義方法以及其組成要素及使用方法都與一般的變量有所不同。這一節(jié)就來詳細(xì)介紹類與對象的使用。,7.2.1 什么是類,在PHP中類的概念通俗一點說:“類”就是一類某事物的統(tǒng)稱是具有相同的屬性定義和行為表現(xiàn)的事物的集合。所有具有一類特性的事物都可以被稱

4、作類。比如“人”就是一個類,這個類具有“國籍”、“種族”、“年齡”、“姓名”等屬性定義,也具有“走路”、“工作”等行為表現(xiàn)。與這個類相區(qū)別,“動物”和“植物”就是另外的兩個類,因為這些不同的類具有不同的特性。 類是一個泛稱不是指的個體,可以說某一個人具有國籍,但不能說“人”這個類的“國籍”是什么,因為“國籍”這個屬性的表現(xiàn)是要隨著類的具體化而實現(xiàn)。類是虛無的東西,一個概念名詞而已。真正用到的則是類的實例對象。,7.2.2 創(chuàng)建類,對象是類的實例,類是對象是根本,使用對象必須以類為前提。所以定義一個類是使用類與對象的一個最基本的前提。在PHP中定義一個類要使用這樣的語法格式: class cla

5、ssname var $var; function functionname() statement; ,7.2.3 為類實例化對象,在類創(chuàng)建之后,實際使用時要用的不是類,而是類的對象。比如,說到某一個具體的人要做什么而不能說人類做什么。所以要為類實例化對象,即以類為基礎(chǔ)創(chuàng)建對應(yīng)于類的對象。7.2.1小節(jié)介紹了類的創(chuàng)建方法,本小節(jié)再來介紹如何為類實例化一個對象。在PHP中要為類實例化對象使用如下所示的代碼樣式: $obj_name=new classname;,7.2.4 使用對象,在為類實例化對象之后就可以使用對象,使用對象通過使用其屬性與方法實現(xiàn)。在PHP中可以通過以下代碼樣式使用對象:

6、$obj_name=new classname; $obj_name-varname; $obj_name-functionname();,7.2.5 稍微復(fù)雜的例子,上一小節(jié)為讀者介紹了基本的類與對象的創(chuàng)建,本節(jié)來介紹一個稍微復(fù)雜的例子。 1有返回值的方法 2有參數(shù)及返回值的方法,7.2.5 稍微復(fù)雜的例子,7.2.6 類的繼承,這一小節(jié)來介紹類的繼承,繼承是一種由已有的類創(chuàng)建新類的機制。利用繼承,用戶可以先創(chuàng)建一個共有屬性的一般類,根據(jù)該一般類再創(chuàng)建具有特殊屬性的新類。新類繼承一般類的狀態(tài)和行為,并根據(jù)需要增加它自己的新的狀態(tài)和行為。由繼承而得到的類稱為子類,被繼承的類稱為父類。在PHP中

7、使用關(guān)鍵字:extends關(guān)鍵字來創(chuàng)建繼承父類的子類,其語法格式如以下代碼所示:,7.2.6 類的繼承,7.2.7 方法重載,上一小節(jié)介紹了類的繼承,在使用類的繼承時,有可能會出現(xiàn)子類中出現(xiàn)與父類中同名的屬性或者方法的情況。在子類中可以定義與父類相同屬性或方法,改變父類該屬性或方法的值或操作,就叫做重載。 注意:PHP不支持同一類中方法的重載。不管參數(shù)類型是否相同,同一類中不允許出現(xiàn)同名的方法。 在PHP子類中調(diào)用父類方法共有3種方法,其語法格式分別為: $this-ParentFunction() Parentclassname:ParentFunction() parent:parentF

8、un();,7.2.7 方法重載,7.2.8 類的引用,類的引用就是指在一個類中使用另一個類中定義的屬性與方法。PHP支持類的引用,要在一個類中引用另一個類的內(nèi)容,可以通過如下代碼格式來實現(xiàn): class classname var $varname; function functionname() statement; class otherclass classname:functionname(); classname:$varname; ,7.2.8 類的引用,7.2.9 類的構(gòu)造方法,類的構(gòu)造函數(shù)是在為類實例化一個對象時會執(zhí)行的一個方法。在PHP中使用特殊的函數(shù):_construct

9、()來表示類的構(gòu)造方法(雙下劃線加construct加一對括號來表示)。構(gòu)造方法一般用于初始化類的一些重要屬性。其語法格式如以下代碼所示: class classname var $var; function _construct($var ) ,7.2.9 類的構(gòu)造方法,7.3 使用類與對象,上一節(jié)為讀者介紹了對象變量及其相關(guān)的知識,這一節(jié)來介紹在PHP中常用的對類與對象進(jìn)行操作的內(nèi)容。PHP的系統(tǒng)函數(shù)專門提供了一類對類與對象進(jìn)行操作的函數(shù),通過這些函數(shù)可以對類與對象進(jìn)行各種需要的操作,本節(jié)將逐一作介紹。,7.3.1 檢查類是否定義,在實例化對象時指定的類如果是一個不存在的類則會提示錯誤。所

10、以在使用一個類之前需要事先了解類是否存在。PHP系統(tǒng)函數(shù)中就有函數(shù)class_exists(),該函數(shù)的語法格式如以下代碼所示: bool class_exists(string $class_name,bool $autoload),7.3.2 返回類的方法名,使用PHP系統(tǒng)函數(shù)中的get_class_methods()函數(shù),可以將類的方法以數(shù)組的形式返回。該函數(shù)的語法格式如以下代碼所示: array get_class_methods(string $class_name),7.3.3 返回類的屬性,7.3.2小節(jié)介紹的內(nèi)容是返回類的方法名,除此之外PHP還可以使用系統(tǒng)函數(shù)返回類中屬性的名

11、稱。使用函數(shù)get_class_vars()即可返回由類的默認(rèn)屬性組成的數(shù)組,該代碼的語法格式如下所示。 array get_class_vars(string $class_name ),7.3.4 返回對象的類名,使用PHP中的系統(tǒng)函數(shù)get_class()可以返回指定對象所屬的類的名稱。該函數(shù)的語法格式如以下代碼所示: string get_class(object $obj),7.3.5 檢查類與對象的關(guān)系,PHP提供了用于檢查類與對象關(guān)系的關(guān)鍵字:instanceof,使用該操作符可以判斷某一對象是否是類的子類。該操作符的語法格式如以下代碼所示: $object instanceof

12、 $class_name,7.3.6 檢查方法是否存在,當(dāng)執(zhí)行對象的方法時,預(yù)先了解對象所屬的類中是否存在某個方法有時是很有必要的,而PHP系統(tǒng)函數(shù)中提供了用于檢測類中指定方法是否存在的函數(shù)。使用method_exists()函數(shù)可以檢查方法是否存在,該函數(shù)的語法格式如下所示: bool method_exists(object $object,string $method_name),7.3.7 檢查屬性是否存在,7.3.6小節(jié)介紹了檢查屬性是否存在的方法,PHP系統(tǒng)函數(shù)中同樣提供了用于檢測類中指定屬性是否存在的函數(shù)。使用property_exists()函數(shù)可以檢查屬性是否存在,該函數(shù)的語法格式如下所示: bool property_exists(

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論