1. 面向对象介绍
1.1 介绍
面向对象是一个编程思想。编程思想有面向过程和面向对象
面向过程:编程思路集中的是过程上
面向对象:编程思路集中在参与的对象
以去饭馆吃饭为例:
面向过程:点菜——做菜——上菜——吃饭——结账——收拾
面向对象:服务员,厨师,客人
1.2 面向对象的好处
- 多人合作方便
- 减少代码冗余,灵活性高
- 代码的可重用性发挥到极致
- 可扩展性强
拓展:
OOP:面向对象编程(Object Oriented Programming,面向对象编程)
OOA: 面向对象分析(Object-Oriented Analysis,OOA)
OOD: 面向对象设计(Object-Oriented Design,OOD)
2. 类和对象
2.1 对象是具体存在的事物,对象是由属性(变量)和方法(函数)组成的
2.2 类是具有相同属性和行为的一组对象的集合
分析:做菜动作——厨师对象——厨师类结论:我们在开发的时候,先写类,通过类创建对象,然后调用对象的属性和方法实现功能。 类——对象——调用成员
注意:一个类可以创建多个对象
总结:
1、对象是由属性和方法组成的
2、类是所有对象的相同属性和方法的集合
3、在开发的时候先写类,通过类创建对象,通过对象调用方法和属性
4、一个类可以创建多个对象
3. 在PHP中实现类和对象
3.1 创建类
语法:
class 类名{
//属性
//方法
//常量
}
类是由属性、方法、常量组成的,也可以说
类成员有:属性、方法、常量
类名的命名规则:
- 以字母、下划线开头,后面跟的是字母、数字、下划线
- 不能用PHP关键字做类名
- 类名不区分大小写(变量名区分,关键字、类名不区分大小写)
- 类名用帕斯卡命名法(大驼峰 单词的首字母大写)
<?php
class Student {
}
3.2 对象实例化
通过new关键字来实例化对象。
<?php
//定义类
class Student {
}
//实例化对象
$stu1=new Student();
$stu2=new Student; //小括号可以省略
var_dump($stu1,$stu2); //object(Student)#1 (0) { } object(Student)#2 (0) { }
3.3 对象的比较
注意:对象的传递是地址传递
相等:结构和保存的值一样就相等全等:指向同一个对象才是全等。
<?php
//定义类
class Student {
}
//实例化对象
$stu1=new Student();
$stu2=new Student;
$stu3=$stu2; //对象传递的是地址
//var_dump($stu1,$stu2,$stu3); //object(Student)#1 (0) { } object(Student)#2 (0) { } object(Student)#2 (0) { }
//对象比较
var_dump($stu1==$stu2); //bool(true) ,比较对象的结构
echo '<br>';
var_dump($stu1===$stu2); //bool(false) $stu1和$stu2是否是同一个对象
echo '<br>';
var_dump($stu2===$stu3); //bool(true) $stu2和$stu3是同一个对象