1/3
課程視頻:OOP 簡介
PHP的面向?qū)ο?/strong>
- 對象是客觀存在的一個實體。
- 類是對對象抽象的一個描述。
- 概念:對象(實體)、類、 類與對象的關(guān)系。
OOP
面向?qū)ο缶幊痰奶攸c:封裝、繼承、多態(tài)。
- 類和對象的關(guān)系:
- 類的實例化結(jié)果就是一個對象(使用
new
關(guān)鍵字)。
- 對對象的抽象描述就是一個類。
- 面向?qū)ο笾辉诤踅Y(jié)果,過程怎么做不管。
如何定義和使用一個類
- 語法格式。
[修飾符] class 類名{
[成員屬性] //定義變量
[成員方法] //定義函數(shù)
}
[修飾符] class 類名 [extends 父類] [implements 接口1[,接口2...]]{
[成員屬性] //定義變量
[成員方法] //定義函數(shù)
}
- 其中成員屬性格式。
修飾符 $變量名[=默認值];
public $name="zhangsan";
注:成員屬性不可以是帶運算符的表達式、變量、方法或函數(shù)的調(diào)用。
public $var6 = 100; //普通數(shù)值(4個標量:整數(shù)、浮點數(shù)、布爾、字串)
public $var6 = myConstant; //常量
public $var7 = self::classConstant; //靜態(tài)屬性
public $var8 = array(true, false); //數(shù)組
常用屬性的修飾符:public
、protected
、private
、static
、var
。
- 其中成員方法格式。
[修飾符] function 方法名(參數(shù)..){
[方法體]
[return 返回值]
}
常用的修飾符:public
、protected
、private
、static
、abstract
、final
。
- 對象的產(chǎn)生。
new
稱為實例化。當類實例化時,就會產(chǎn)生一個對象。
$p = new Person();
$this
關(guān)鍵字,表示自己,表示當前使用對象。
我們在類中調(diào)用自己的成員屬性或函數(shù)都是使用 $this
來調(diào)用。
注:非靜態(tài)方法中可以使用
this
關(guān)鍵字。
構(gòu)造函數(shù)和析構(gòu)函數(shù)
- 構(gòu)造方法(構(gòu)造函數(shù))。
當我們通過new
關(guān)鍵字來創(chuàng)建一個對象時,第一個自動執(zhí)行的方法稱為構(gòu)造方法。
方法名__construct();
主要用于初始化對象。
注:在 php4.0 時可使用與類名重名的方法作為構(gòu)造方法。
- 析構(gòu)方法。
當這個對象被銷毀時最后自動調(diào)用的方法,稱為析構(gòu)方法。
__destruct();
目的是釋放資源(如關(guān)閉連接、文件,釋放資源)。
封裝(訪問控制)
將屬性私有,并提供公有的setter
放置與getter
取值方法。
位置 | private(公有) | protected(受保護) | private(私有) |
---|---|---|---|
本類中 | Y | Y | Y |
子類中 | Y | Y | N |
類外邊 | Y | N | N |