|
對(duì)象的行為:可以對(duì) 對(duì)象施加那些操作,開(kāi)燈,關(guān)燈就是行為。
對(duì)象的形態(tài):當(dāng)施加那些方法是對(duì)象如何響應(yīng),顏色,尺寸,外型。
對(duì)象的表示:對(duì)象的表示就相當(dāng)于身份證,具體區(qū)分在相同的行為與狀態(tài)下有什么不同。
面向?qū)ο竽P?
面向?qū)ο蟮母拍睿?
oop(面向?qū)ο蟮木幊?它能是其代碼更加簡(jiǎn)潔易于維護(hù)并且具有更強(qiáng)的可重性
什么是類:
類是具有相同屬性和服務(wù)的一組對(duì)象的集合比如說(shuō)人,書,輪船,車都屬于類,他為屬于該類的對(duì)象做了一個(gè)統(tǒng)一的抽象描述,在編程的語(yǔ)言中類是一個(gè)單獨(dú)的程序,它應(yīng)該有一個(gè)類名包括屬性的說(shuō)明和服務(wù)兩個(gè)部分。
什么是對(duì)象:
對(duì)象是系統(tǒng)中描述客觀事件的一個(gè)實(shí)體,他是構(gòu)成系統(tǒng)的一個(gè)基本單位。*數(shù)據(jù)與代碼都被捆綁在一個(gè)實(shí)體當(dāng)中*,一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的一組行為組成。
從抽象的角度來(lái)說(shuō),對(duì)象是問(wèn)題域或?qū)崿F(xiàn)域中某些事物的一個(gè)抽象。他反映該事物在系統(tǒng)中保存的信息和發(fā)揮的作用:它是一組屬性和有權(quán)對(duì)這些屬性進(jìn)行操作的一個(gè)封裝體。客觀世界是由對(duì)象和對(duì)象之間的聯(lián)系組成的。
類和對(duì)象的關(guān)系:
類與對(duì)象的關(guān)系就如模具和鑄件的關(guān)系,類的實(shí)力化的結(jié)果就是對(duì)象,而對(duì)對(duì)象的抽象就是類,類描述了一組有相同特性(屬性)和相同行為的對(duì)象。
類與屬性和方法
php中定義類語(yǔ)法格式:
class classname [可選屬性]{
public $property [=value];... //用public聲明一個(gè)公共標(biāo)識(shí) 然后給予一個(gè)變量 變量也可以賦值
function functionname ( args ){ //類的方法里的成員函數(shù)
代碼} ...
//類的方法(成員函數(shù))
}
生成對(duì)象(類的實(shí)例化): $對(duì)象名=new classname( );
使用對(duì)象的屬性
在一個(gè)類中,可以訪問(wèn)一個(gè)特殊指針$this當(dāng)在該類中通過(guò)一個(gè)操作設(shè)置或訪問(wèn)該變量時(shí),使用$this->name來(lái)引用.
對(duì)象的生成
定義好類后用一個(gè)new來(lái)聲明,由于對(duì)象資料的封裝特性,對(duì)象是無(wú)法由主程序區(qū)塊直接訪問(wèn)的須通過(guò)對(duì)象來(lái)調(diào)用類中所定義的屬性和行為函數(shù),間接地達(dá)成存取控制類中資料的目的。
對(duì)象和類的關(guān)系
對(duì)象和類的關(guān)系:
對(duì)象是實(shí)際存在的,占有動(dòng)態(tài)資源。
類是對(duì)象的藍(lán)圖,可能占有靜態(tài)資源。
對(duì)象屬性占有動(dòng)態(tài)資源
類(靜態(tài))屬性實(shí)際上是有類名字空間上的“全局變量”
性能考慮:
每個(gè)對(duì)象要單獨(dú)占用數(shù)據(jù)空間
增加的調(diào)用層次可能消耗執(zhí)行時(shí)間
方法的參數(shù)形式和傳遞方式
方法的參數(shù)可以是基本數(shù)據(jù)類型、數(shù)組和類對(duì)象。
基本數(shù)據(jù)類型:值參傳遞
數(shù)組:值參傳遞
類對(duì)象:引用傳遞
構(gòu)造函數(shù)
構(gòu)造函數(shù)是在類中起到初始化的作用
構(gòu)造函數(shù)的生成方法與其他函數(shù)一樣只是其名稱必須是__construct().
語(yǔ)法格式:function __construct(參數(shù)){
。。。。。。。。
}
范例:
class Person{
public $name;
public $sex;
public $age;
function __construct($name,$sex,$age){
echo "我是構(gòu)造函數(shù)<br>";
$this->name=$name;
$this->sex=$sex;
$this->age=$age;
}
輸出結(jié)果:初始化
析構(gòu)函數(shù)
當(dāng)對(duì)象脫離其作用域時(shí)(例如對(duì)象所在的函數(shù)已調(diào)用完畢),系統(tǒng)自動(dòng)執(zhí)行析構(gòu)函數(shù)。應(yīng)在退出前在析構(gòu)函數(shù)中用釋放內(nèi)存。
析構(gòu)函數(shù)__destruct 析構(gòu)函數(shù)沒(méi)有任何參數(shù)
范例:class person{
function _ _destruct( )
{ echo "bye bye !“; }
}
$a=new person();
訪問(wèn)類型
public 公共的(公共修飾符) 類內(nèi)部與類外部都可以訪問(wèn)的
private 私有的(私有修飾符) 只能在類內(nèi)部訪問(wèn)
protected 受保護(hù)的(保護(hù)成員修飾符) 子類可以訪問(wèn) 類外部不可以訪問(wèn)
oop的三個(gè)重要特性
封裝,繼承,多態(tài)
封裝性:封裝性就是把對(duì)象的屬性和行為結(jié)合成一個(gè)獨(dú)立的單位。
封裝一個(gè)類需要兩步 第一步是私有化一個(gè)類 第二步是用set和get 做出讀取賦值的操作
他的好處是:隱藏類的實(shí)現(xiàn)細(xì)節(jié),可以方便加入邏輯控制性,限制對(duì)屬性的不合理操作,便于修改增強(qiáng)代碼的可維護(hù)性。
__get與__set
一般說(shuō)把類私有話更符合現(xiàn)實(shí)的邏輯。
預(yù)定義兩種函數(shù)來(lái)進(jìn)行獲取與敷值操作。
__get 獲取值通常是域的值
__set 設(shè)置值通常是域的值
__call 調(diào)用一個(gè)對(duì)象中不存在的方法時(shí),就會(huì)產(chǎn)生錯(cuò)誤call()這個(gè)方法來(lái)處理這種情況。
php技術(shù):php學(xué)習(xí) 面向?qū)ο?課件第1/2頁(yè),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。