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

对象被销毁的时候,会自动调用;

 

访问总结:

类,对象 --->>>  实例属性,静态属性,实例方法,静态方法:他们之之间有怎样的可访问性(关系)?

 

 

文字表达:

$对象->普通属性;

$对象->普通方法;

类名::类常量;

类名::静态属性;

类名::静态方法;

 

 

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