面向對象編程(Object Oriented Programming, OOP, 面向對象程序設計)是一種計算機編程架構,OOP 的一條基本原則是計算機程序是由單個能夠起到子程序作用的單元或對象組合而成,OOP達到了軟件工程的三個目標:重用性、靈活性和擴展性。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。面向對象一直是軟件開發領域內比較熱門的話題,首先,面向對象符合人類看待事物的一般規律。其次,采用面向對象方法可以使系統各部分各司其職、各盡所能。為編程人員敞開了一扇大門,使其編程的代碼更簡潔、更易於維護,並且具有更強的可重用性。有人說PHP不是一個真正的面向對象的語言,這是事實。PHP 是一個混合型語言,你可以使用OOP,也可以使用傳統的過程化編程。然而,對於大型項目,你可能需要在PHP 中使用純的OOP去聲明類,而且在你的項目裡只用對象和類。這個概念我先不多說了,因為有很多朋友遠離面向對象編程的主要原因就是一接觸面向對象概念的時候就理解不上去, 所以就不想去學下去了。等讀者看完整篇內容後再去把概念搞明白吧。
先上視頻教程:
bkJia視頻教程17:PHP面向對象開發的學習(一)
bkJia視頻教程18:PHP面向對象開發的學習(二)
bkJia視頻教程19:PHP面向對象開發的學習(三)
bkJia視頻教程20:PHP面向對象開發的學習(四)
bkJia視頻教程21:PHP面向對象開發的學習(五)
bkJia視頻教程22:PHP面向對象開發的學習(六)
bkJia視頻教程23:PHP面向對象開發的學習(七)
bkJia視頻教程24:PHP面向對象開發的學習(八)
bkJia視頻教程25:PHP面向對象開發的學習(九)
實例:
bkJia視頻教程26:制作自己的PHP+MYSQL的類
更多相關
=======================================================
文章目錄:
1.面向對象的概念
2.什麼是類,什麼是對象,類和對象之間的關系
3.什麼是面向對象編程呢?
4.如何抽象出一個類?
5.如何實例化對象?
6.如何去使用對象中的成員?
7.特殊的引用“$this”的使用
8.構造方法與析構方法
9.封裝性
10.__set()、__get()、__isset()、__unset()四個方法的應用
11.類的繼承
12.多態的應用
13.重載新的方法
14.訪問類型
15.靜態成員的使用
16.final 關鍵字的應用
17.__toString()方法
18.克隆對象
19.__call 處理調用錯誤
20.自動加載類
21.把對象串行化
22.抽象方法和抽象類
23.php5 接口技術
=======================================================
2.什麼是類,什麼是對象,類和對象之間的關系
類的概念:類是具有相同屬性和服務的一組對象的集合。它為屬於該類的所有對象提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。在面向對象的編程語言中,類是一個獨立的程序單位,它應該有一個類名並包括屬性說明和服務說明兩個主要部分。
對象的概念:對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務組成。從更抽象的角度來說,對象是問題域或實現域中某些事物的一個抽象,它反映該事物在系統中需要保存的信息和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。客觀世界是由對象和對象之間的聯系組成的。類與對象的關系就如模具和鑄件的關系,類的實例化結果就是對象,而對一類對象的抽象就是類。類描述了一組有相同特性(屬性)和相同行為(方法)的對象。上面大概就是它們的定義吧,也許你是剛接觸面向對象的朋友, 不要被概念的東西搞暈了,給你舉個例子吧,如果你去中關村想買幾台組裝的PC 機,到了那裡你第一步要干什麼,是不是裝機的工程師和你坐在一起,按你提供的信息和你一起完成一個裝機的配置單呀,這個配置單就可以想象成是類,它就是一張紙,但是它上面記錄了你要買的PC 機的信息,如果用這個配置單買10 台機器,那麼這10 台機子,都是按這個配置單組成的,所以說這10 機子是一個類型的,也可以說是一類的。那麼什麼是對象呢,類的實例化結果就是對象,用這個配置單配置出來(實例化出來)的機子就是對象,是我們可以操作的實體,10 台機子,10 個對象。每台機子都是獨立的,只能說明他們是同一類的,對其中一個機做任何動作都不會影響其它9 台機器,但是我對類修改,也就是在這個配置單上加一個或少一個配件,那麼裝出來的9 個機子都改變了,這是類對象的關系(類的實例化結果就是對象)。
3.什麼是面向對象編程呢?
就不說他的概念,如果你想建立一個電腦教室,首先要有一個房間, 房間裡面要有N 台電腦,有N 張桌子, N 把椅子, 白板, 投影機等等,這些是什麼,剛才咱們說了,這就是對象,能看到的一個個的實體,可以說這個電腦教室的單位就是這一個個的實體對象, 它們共同組成了這個電腦教室,那麼我們是做程序,這和面向對象有什麼關系呢?開發一個系統程序和建一個電腦教室類似,你把每個獨立的功能模塊抽象成類,形成對象,由多個對象組成這個系統,這些對象之間都能夠接收信息、處理數據和向其它對象發送信息等等相互作用。就構成了面向對象的程序。
4.如何抽象出一個類?
上面已經介紹過了,面向對象程序的單位就是對象,但對象又是通過類的實例化出來的,所以我們首先要做的就是如何來聲明類,做出來一個類很容易,只要掌握基本的程序語法定義規則就可以做的出來,那麼難點在那裡呢?一個項目要用到多少個類,用多少個對象,在那要定義類,定義一個什麼樣的類,這個類實例化出多少個對象,類裡面有多少個屬性,有多少個方法等等,這就需要讀者通過在實際的開發中就實際問題分析設計和總結了。類的定義:
class 類名{
}
使用一個關鍵字class 和後面加上一個你想要的類名以及加上一對大括號, 這樣一個類的結構就定義出來了,只要在裡面寫代碼就可以了,但是裡面寫什麼?能寫什麼?怎樣寫才是一個完整的
類呢?上面講過來,使用類是為了讓它實例出對象來給我們用,這就要知道你想要的是什麼樣的對象了,像上面我們講的一個裝機配置單上寫什麼,你裝出來的機子就有什麼。比如說,一個人就是一對象,你怎麼把一個你看好的人推薦給你們領導呢?當然是越詳細越好了:首先,你會介紹這個人姓名、性別、年齡、身高、體重、電話、家庭住址等等。然後,你要介紹這個人能做什麼,可以開車,會說英語,可以使用電腦等等。只要你介紹多一點,別人對這個人就多一點了解,這就是我們對一個人的描述, 現在我們總結一下,所有的對象我們用類去描述都是類似的,從上面人的描述可以看到, 做出一個類來,從定義的角度分兩部分,第一是從靜態上描述,第二是從動態上描述, 靜態上的描述就是我們所說的屬性,像上面我們看到的,人的姓名、性別、年齡、身高、體重、電話、家庭住址等等。動態上也就是人的這個對象的功能,比如這個人可以開車,會說英語,可以使用電腦等等,抽象成程