PHP筆記9-day13

面向過程:

將任務,分解爲一個一個的連續的步驟,每個步驟去依次執行,然後最後就完成了既定目標;

 

面向對象:

將任務,分解爲一個一個的“對象”,每個對象都有其自身的屬性和方法,整個任務的完成,就是這些對象的“各自相互獨立”有有所依從/關聯的一些行爲動作(各自的小任務),最終協調完成既定目標;

 

類:類是描述一類事物的共有特徵信息的一種語法結構。

 

class  C{}

 

對象:就是根據一個類所“生產”(創建)出來的一個“具體實物”。

$o1 = new C(); //對象;

 

對象的傳值方式:

先看對象的存儲模式(結構):

$變量 ---->  對象標識符/編號(#1) ----->  #1對象數據本身

並且:該變量中存儲的實際是該對象的標識符/編號。這個標識符或編號有能力去“指向對象”;

class  C{ public  $p1 = 1;}

$o1 = new C();

$o2 = $o1; //值傳遞,此時$o2中存儲的也是編號#,此時他們的關係爲:

$o1---->  編號(#1) ----->  #1對象數據

$o2---->  編號(#1) 

$o1->p1 = 2; //修改的是對象#1p1屬性的值;

echo $o2->p1; //2

 

$o1 = 100;

var_dump($o2); //輸出:Object(C)#1{p1 =>2}

echo $o2->p1; //輸出:2

因爲,此時他們是這樣的數據情況:

$o1---->  100               #1對象數據

$o2---->  編號(#1)

 

$o3 = new C();

$o4 = & $o3; //引用傳遞,此時他們圖示如下:

$o3---->  編號(#2) ----->  #2對象數據

$o4 

$o3->p1 = 3;

echo  $o4->p1 ; //輸出:3

如果:

$o3 = 300;

echo $o4->p1; //???——報錯!!!!

var_dump($o4); //輸出: int(300)

理解:

$o3---->  300     #2對象數據(此時該對象自動銷燬了)

$o4

 

類中成員:

類常量:

const  常量名  常量值;

實例屬性:

public  $屬性名  【初始值】;

靜態屬性:

static  $屬性名  【初始值】;

 

實例方法:

【 public 】 function  方法名(形參1,形參2...。。。。。}

 

靜態方法:

static  【 public 】 function  方法名(形參1,形參2...。。。。。}

 

構造方法:

就是在一個類創建出一個對象的時候會立即自動調用的方法;

方法名必須是一個固定的名字: __construct;

$obj1 = new C(); //此時,如果類C中有構造方法,就必然調用該方法;如果沒有,就不會調用。

//如果有構造方法,且帶參數,此時new 語法中,也需要有對應的實參;

 

析構方法:

固定的名稱:__destruct

對象被銷燬的時候,會自動調用;

 

訪問總結:

類,對象 --->>>  實例屬性,靜態屬性,實例方法,靜態方法:他們之之間有怎樣的可訪問性(關係)?

 

 

文字表達:

$對象->普通屬性;

$對象->普通方法;

類名::類常量;

類名::靜態屬性;

類名::靜態方法;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章