面向对象与面向过程的定义:

面向过程:面向过程是一种一过程为中心的编程思想。在面向过程中也可称为“面向记录”编程思想 通俗讲:在完成一件事情,完成一个功能由开始到结束,通过完成一个一个步骤再进行下一步骤,知道事件的完成,叫面向过程。

面向对象:面向对象是一种思想是一种以实物为中心的编程思想

2,面向对象主要由两大块组成 : 类,对象

类: 用来 定义好某些对象的模板 ,里面有对象的成员属性(属性由变量,或者常量组成),成员方法(普通成员方法,构造方法,析构方法)。

对象: 对象是根据该模块所创造出来的具体物体。一个对象由那些属性,可以做那些事情 都由类的属性,方法决定。

3,面向对象的语法:

1,定义类: (类含属性(变量属性,成员属性,静态属性)方法(成员方法,静态方法,构造方法,析构方法))

classPerson{$name="张三"//变量属性constage=24;//常量属性static$sex="女";}function__construct($a,$b){}functionStudy(){}function__destruct(){}

2,创建对象:

$对象名1->nesPerson();//创建对象$cname=Person;$对象2->cname();//创建可变类对象$对象名3=newself//self指代表类本身,只能在类的内部方法中使用

3,对象使用: (对象的使用由类决定有什么使用什么) 主要有以下三种方式

3.1 使用类属性: $Person1 -> name="李四”; 此处相当给属性赋值

3.2 使用类方法: $Person1->study();

3.3 获取属性值 $str = $Person1->name // 将类的属性值赋予$str

4,对象的传值:

主要有两种传递方式: 、

值传递 :传递完之后,有了2份同样的数据,但两个变量“相互独立”没有关系

引用传递:传递的时候,拷贝的是引用关系。需要使用“&”才能实现引用传递,

传递完之后,数据仍然只有一份,但是两个变量共同指向该数据

值传递:

classPerson{var$v1=10;}$p1=newPerson();$p2=$p1;$p1->v1=20;echo$p1->v1;//输出20echo$p2->v1;//输出20此处是将$p1的值传递给$p2,因此在$p1的值改变,$p2的值也跟着改变

引用传递: $p3 = new Person();

$p4 =&$p3;

$p3->v1=100;

echo $p3; //输出100

echo $p4; //输出100

5,构造方法:

构造方式是类中一个特殊方法,其作用是在实例化一个对象的同时,给该对象的

属性赋值,使对象创建完成后就具有本身的特有的数据(属性值)

6.1 构造方法的名字是固定为: __construct();

6.2,该方法必须是普通方法,(不能静态方法)

6.3 通常该方法中使用$this这个关键字来对属性值进行赋值

6.4 当new 新对象的时候,就已经调用该构造方法

6.5 定义了构造方法,实例化该类时就调用该方法,且实例化的参数跟构造方法的

classPerson{public$name="abc";public$age="18";function__construct($n,$a){$this->name=$n;$this->age=$a;}functionintro($a,$b){echo"大家好我叫.$this->name.年龄.$this->age";}}$Person1=newPerson('cba',20);//可以看作调用构造方法$Person1->intro();//输出大家好我叫cba年龄20

6,析构方法:function __destruct(){.....}

构造方法是“创建”对象的时候会自动调用。

析构方法是“销毁”对象的时候会自动调用。

说明:

1,析构方法通常不太需要去定义。

2,析构方法不能调用。

3,析构方法不能有形参。