版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο缶幊蹋∣bjectOrientedProgramming,OOP,面向?qū)ο蟪绦蛟O(shè)計(jì))是一種計(jì)算機(jī)編程架構(gòu),OOP的一條基本原則是計(jì)算機(jī)程序是由單個(gè)可以起到子程序作用的單元或?qū)ο蠼M合而成,OOP達(dá)成了軟件工程的三個(gè)目的:重用性、靈活性和擴(kuò)展性。為了實(shí)現(xiàn)整體運(yùn)算,每個(gè)對(duì)象都可以接受信息、解決數(shù)據(jù)和向其它對(duì)象發(fā)送信息。面向?qū)ο笠恢笔擒浖_(kāi)發(fā)領(lǐng)域內(nèi)比較熱門(mén)的話(huà)題,一方面,面向?qū)ο蠓先祟?lèi)看待事物的一般規(guī)律。另一方面,采用面向?qū)ο蠓椒梢允瓜到y(tǒng)各部分各司其職、各盡所能。為編程人員敞開(kāi)了一扇大門(mén),使其編程的代碼更簡(jiǎn)潔、更易于維護(hù),并且具有更強(qiáng)的可重用性。有人說(shuō)PHP不是一個(gè)真正的面向?qū)ο蟮恼Z(yǔ)言,這是事實(shí)。PHP是一個(gè)混合型語(yǔ)言,你可以使用OOP,也可以使用傳統(tǒng)的過(guò)程化編程。然而,對(duì)于大型項(xiàng)目,你也許需要在PHP中使用純的OOP去聲明類(lèi),并且在你的項(xiàng)目里只用對(duì)象和類(lèi)。這個(gè)概念我先不多說(shuō)了,由于有很多朋友遠(yuǎn)離面向?qū)ο缶幊痰闹匾蛩鼐褪且唤佑|面向?qū)ο蟾拍畹臅r(shí)候就理解不上去,所以就不想去學(xué)下去了。等讀者看完整篇內(nèi)容后再去把概念搞明白吧。
先上視頻教程:
PHP100視頻教程17:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(一)
PHP100視頻教程18:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(二)
PHP100視頻教程19:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(三)
PHP100視頻教程20:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(四)
PHP100視頻教程21:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(五)
PHP100視頻教程22:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(六)
PHP100視頻教程23:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(七)
PHP100視頻教程24:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(八)
PHP100視頻教程25:PHP面向?qū)ο箝_(kāi)發(fā)的學(xué)習(xí)(九)
實(shí)例:
PHP100視頻教程26:制作自己的PHP+MYSQL的類(lèi)更多相關(guān)=======================================================文章目錄:
1.面向?qū)ο蟮母拍?/p>
2.什么是類(lèi),什么是對(duì)象,類(lèi)和對(duì)象之間的關(guān)系
3.什么是面向?qū)ο缶幊棠兀?/p>
4.如何抽象出一個(gè)類(lèi)?
5.如何實(shí)例化對(duì)象?
6.如何去使用對(duì)象中的成員?
7.特殊的引用“$this”的使用
8.構(gòu)造方法與析構(gòu)方法
9.封裝性
10.__set()、__get()、__isset()、__unset()四個(gè)方法的應(yīng)用
11.類(lèi)的繼承
12.多態(tài)的應(yīng)用
13.重載新的方法
14.訪(fǎng)問(wèn)類(lèi)型
15.靜態(tài)成員的使用
16.final關(guān)鍵字的應(yīng)用
17.__toString()方法
18.克隆對(duì)象
19.__call解決調(diào)用錯(cuò)誤
20.自動(dòng)加載類(lèi)
21.把對(duì)象串行化
22.抽象方法和抽象類(lèi)
23.php5接口技術(shù)=======================================================
2.什么是類(lèi),什么是對(duì)象,類(lèi)和對(duì)象之間的關(guān)系
類(lèi)的概念:類(lèi)是具有相同屬性和服務(wù)的一組對(duì)象的集合。它為屬于該類(lèi)的所有對(duì)象提供了統(tǒng)一的抽象描述,其內(nèi)部涉及屬性和服務(wù)兩個(gè)重要部分。在面向?qū)ο蟮木幊陶Z(yǔ)言中,類(lèi)是一個(gè)獨(dú)立的程序單位,它應(yīng)當(dāng)有一個(gè)類(lèi)名并涉及屬性說(shuō)明和服務(wù)說(shuō)明兩個(gè)重要部分。對(duì)象的概念:對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)組成。從更抽象的角度來(lái)說(shuō),對(duì)象是問(wèn)題域或?qū)崿F(xiàn)域中某些事物的一個(gè)抽象,它反映該事物在系統(tǒng)中需要保存的信息和發(fā)揮的作用;它是一組屬性和有權(quán)對(duì)這些屬性進(jìn)行操作的一組服務(wù)的封裝體??陀^世界是由對(duì)象和對(duì)象之間的聯(lián)系組成的。類(lèi)與對(duì)象的關(guān)系就如模具和鑄件的關(guān)系,類(lèi)的實(shí)例化結(jié)果就是對(duì)象,而對(duì)一類(lèi)對(duì)象的抽象就是類(lèi)。類(lèi)描述了一組有相同特性(屬性)和相同行為(方法)的對(duì)象。上面大約就是它們的定義吧,也許你是剛接觸面向?qū)ο蟮呐笥?,不要被概念的東西搞暈了,給你舉個(gè)例子吧,假如你去中關(guān)村想買(mǎi)幾臺(tái)組裝的PC機(jī),到了那里你第一步要干什么,是不是裝機(jī)的工程師和你坐在一起,按你提供的信息和你一起完畢一個(gè)裝機(jī)的配置單呀,這個(gè)配置單就可以想象成是類(lèi),它就是一張紙,但是它上面記錄了你要買(mǎi)的PC機(jī)的信息,假如用這個(gè)配置單買(mǎi)10臺(tái)機(jī)器,那么這10臺(tái)機(jī)子,都是按這個(gè)配置單組成的,所以說(shuō)這10機(jī)子是一個(gè)類(lèi)型的,也可以說(shuō)是一類(lèi)的。那么什么是對(duì)象呢,類(lèi)的實(shí)例化結(jié)果就是對(duì)象,用這個(gè)配置單配置出來(lái)(實(shí)例化出來(lái))的機(jī)子就是對(duì)象,是我們可以操作的實(shí)體,10臺(tái)機(jī)子,10個(gè)對(duì)象。每臺(tái)機(jī)子都是獨(dú)立的,只能說(shuō)明他們是同一類(lèi)的,對(duì)其中一個(gè)機(jī)做任何動(dòng)作都不會(huì)影響其它9臺(tái)機(jī)器,但是我對(duì)類(lèi)修改,也就是在這個(gè)配置單上加一個(gè)或少一個(gè)配件,那么裝出來(lái)的9個(gè)機(jī)子都改變了,這是類(lèi)對(duì)象的關(guān)系(類(lèi)的實(shí)例化結(jié)果就是對(duì)象)。3.什么是面向?qū)ο缶幊棠兀?/p>
就不說(shuō)他的概念,假如你想建立一個(gè)電腦教室,一方面要有一個(gè)房間,房間里面要有N臺(tái)電腦,有N張桌子,N把椅子,白板,投影機(jī)等等,這些是什么,剛才咱們說(shuō)了,這就是對(duì)象,能看到的一個(gè)個(gè)的實(shí)體,可以說(shuō)這個(gè)電腦教室的單位就是這一個(gè)個(gè)的實(shí)體對(duì)象,它們共同組成了這個(gè)電腦教室,那么我們是做程序,這和面向?qū)ο笥惺裁搓P(guān)系呢?開(kāi)發(fā)一個(gè)系統(tǒng)程序和建一個(gè)電腦教室類(lèi)似,你把每個(gè)獨(dú)立的功能模塊抽象成類(lèi),形成對(duì)象,由多個(gè)對(duì)象組成這個(gè)系統(tǒng),這些對(duì)象之間都可以接受信息、解決數(shù)據(jù)和向其它對(duì)象發(fā)送信息等等互相作用。就構(gòu)成了面向?qū)ο蟮某绦颉?.如何抽象出一個(gè)類(lèi)?
上面已經(jīng)介紹過(guò)了,面向?qū)ο蟪绦虻膯挝痪褪菍?duì)象,但對(duì)象又是通過(guò)類(lèi)的實(shí)例化出來(lái)的,所以我們一方面要做的就是如何來(lái)聲明類(lèi),做出來(lái)一個(gè)類(lèi)很容易,只要掌握基本的程序語(yǔ)法定義規(guī)則就可以做的出來(lái),那么難點(diǎn)在那里呢?一個(gè)項(xiàng)目要用到多少個(gè)類(lèi),用多少個(gè)對(duì)象,在那要定義類(lèi),定義一個(gè)什么樣的類(lèi),這個(gè)類(lèi)實(shí)例化出多少個(gè)對(duì)象,類(lèi)里面有多少個(gè)屬性,有多少個(gè)方法等等,這就需要讀者通過(guò)在實(shí)際的開(kāi)發(fā)中就實(shí)際問(wèn)題分析設(shè)計(jì)和總結(jié)了。類(lèi)的定義:class類(lèi)名{
}使用一個(gè)關(guān)鍵字class和后面加上一個(gè)你想要的類(lèi)名以及加上一對(duì)大括號(hào),這樣一個(gè)類(lèi)的結(jié)構(gòu)就定義出來(lái)了,只要在里面寫(xiě)代碼就可以了,但是里面寫(xiě)什么?能寫(xiě)什么?如何寫(xiě)才是一個(gè)完整的
類(lèi)呢?上面講過(guò)來(lái),使用類(lèi)是為了讓它實(shí)例出對(duì)象來(lái)給我們用,這就要知道你想要的是什么樣的對(duì)象了,像上面我們講的一個(gè)裝機(jī)配置單上寫(xiě)什么,你裝出來(lái)的機(jī)子就有什么。比如說(shuō),一個(gè)人就是一對(duì)象,你怎么把一個(gè)你看好的人推薦給你們領(lǐng)導(dǎo)呢?當(dāng)然是越具體越好了:一方面,你會(huì)介紹這個(gè)人姓名、性別、年齡、身高、體重、電話(huà)、家庭住址等等。然后,你要介紹這個(gè)人能做什么,可以開(kāi)車(chē),會(huì)說(shuō)英語(yǔ),可以使用電腦等等。只要你介紹多一點(diǎn),別人對(duì)這個(gè)人就多一點(diǎn)了解,這就是我們對(duì)一個(gè)人的描述,現(xiàn)在我們總結(jié)一下,所有的對(duì)象我們用類(lèi)去描述都是類(lèi)似的,從上面人的描述可以看到,做出一個(gè)類(lèi)來(lái),從定義的角度分兩部分,第一是從靜態(tài)上描述,第二是從動(dòng)態(tài)上描述,靜態(tài)上的描述就是我們所說(shuō)的屬性,像上面我們看到的,人的姓名、性別、年齡、身高、體重、電話(huà)、家庭住址等等。動(dòng)態(tài)上也就是人的這個(gè)對(duì)象的功能,比如這個(gè)人可以開(kāi)車(chē),會(huì)說(shuō)英語(yǔ),可以使用電腦等等,抽象成程序時(shí),我們把動(dòng)態(tài)的寫(xiě)成函數(shù)或者說(shuō)是方法,函數(shù)和方法是同樣的。所以,所有類(lèi)都是從屬性和方法這兩方面去寫(xiě),屬性又叫做這個(gè)類(lèi)的成員屬性,方法叫做這個(gè)類(lèi)的成員方法。class人{(lán)
成員屬性:姓名、性別、年齡、身高、體重、電話(huà)、家庭住址
成員方法:可以開(kāi)車(chē),會(huì)說(shuō)英語(yǔ),可以使用電腦
}屬性:
通過(guò)在類(lèi)定義中使用關(guān)鍵字"var"來(lái)聲明變量,即創(chuàng)建了類(lèi)的屬性,雖然在聲明成員屬性的時(shí)候可以給定初始值,但是在聲明類(lèi)的時(shí)候給成員屬性初始值是沒(méi)有必要的,比如說(shuō)要是把人的姓名賦上“張三”,那么用這個(gè)類(lèi)實(shí)例出幾十個(gè)人,這幾十個(gè)人都叫張三了,所以沒(méi)有必要,我們?cè)趯?shí)例出對(duì)象后給成員屬性初始值就可以了。如:var$somevar;
方法(成員函數(shù)):
通過(guò)在類(lèi)定義中聲明函數(shù),即創(chuàng)建了類(lèi)的方法。
如:functionsomefun(參數(shù)列表)
{......}
<?php
classPerson
{
//下面是人的成員屬性
var$name;//人的名字
var$sex;//人的性別
var$age;//人的年齡
//下面是人的成員方法
functionsay()//這個(gè)人可以說(shuō)話(huà)的方法
{
echo"這個(gè)人在說(shuō)話(huà)";
}f
unctionrun()//這個(gè)人可以走路的方法
{
echo"這個(gè)人在走路";
}
}
?>
上面就是一個(gè)類(lèi)的聲明,從屬性和方法上聲明出來(lái)的一個(gè)類(lèi),但是成員屬性最佳在聲明的時(shí)候不要給初始的值,由于我們做的人這個(gè)類(lèi)是一個(gè)描述信息,將來(lái)用它實(shí)例化對(duì)象,比如實(shí)例化出來(lái)10個(gè)人對(duì)象,那么這10個(gè)人,每一個(gè)人的名字、性別、年齡都是不同樣的,所以最佳不要在這個(gè)地方給成員屬性賦初值,而是對(duì)每個(gè)對(duì)象分別賦值的。用同樣的辦法可以做出你想要的類(lèi)了,只要你能用屬性和方法能描述出來(lái)的實(shí)體都可以定義成類(lèi),去實(shí)例化對(duì)象。為了加強(qiáng)你對(duì)類(lèi)的理解,我們?cè)僮鲆粋€(gè)類(lèi),做一個(gè)形狀的類(lèi),形狀的范圍廣了點(diǎn),我們就做個(gè)矩形吧,先分析一下,想一想從兩方面分析,矩形的屬性都有什么?矩形的功能都有什么?class矩形
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《水無(wú)機(jī)鹽維生素》課件
- 《外傷常用藥物》課件
- 2025年泉州貨運(yùn)從業(yè)資格證考試題
- 2025年石家莊貨運(yùn)從業(yè)資格證科目一考試答案
- 2025年石家莊貨這從業(yè)資格證考試答案
- 2025年阿克蘇貨運(yùn)資格證培訓(xùn)考試題
- 高檔住宅小區(qū)地彈門(mén)施工合同
- 展覽會(huì)現(xiàn)場(chǎng)翻譯聘用合同
- 醫(yī)學(xué)博士臨床研究招聘合同
- 咨詢(xún)公司續(xù)租協(xié)議范本
- 遷移教學(xué)在中學(xué)思想政治課中的應(yīng)用
- ASTM B896-10(2020) 評(píng)定電導(dǎo)體材料連接特性的標(biāo)準(zhǔn)試驗(yàn)方法
- 中國(guó)傳統(tǒng)文化中的領(lǐng)導(dǎo)力——曾國(guó)藩管理方略ppt課件
- 政府的權(quán)力——依法行使
- 最新《西游記》41至60回練習(xí)題(有答案)(版權(quán)所有,侵權(quán)必究)
- EPE氣泡墊檢驗(yàn)通用標(biāo)準(zhǔn)
- 數(shù)獨(dú)比賽“六宮”練習(xí)題(96道)練習(xí)
- 課程設(shè)計(jì)整體式肋梁樓蓋設(shè)計(jì)
- 機(jī)械行業(yè)特殊工種目錄
- 足球興趣小組活動(dòng)記錄617
- 昆明市不動(dòng)產(chǎn)登記中心最新抵押表全三套(共4頁(yè))
評(píng)論
0/150
提交評(píng)論