第 一 章 类与对象
1.1 学习技术的套路
1.2 看一个实际的需求
l 使用现有的技术来解决
l 使用面向对象的方式来解决
- 代码来一个快速入门的案例
- 说明
(1) class 是一个关键字,表示这是一个类,不能修改
(2) public $name , 是一个成员属性, 当我们类定义的{} 中定义的变量,就是一个成员属性
(3) public 是访问修饰符, 他是用于控制成员属性(变量)的访问范围的, 除了public还有两个,protected 和 private ,后面我们会详细介绍
(4) $cat1 = new Cat , 这个叫实例化一个对象, $cat1 就是一个对象, new 是一个关键字,表示新创建一个对象
(5) $cat1->name = '小白'; 表示给成员属性赋值,-> 符号叫做对象运算符
(6) 当我们需要看一个对象的情况时,我们可以通过 var_dump 来输出该对象
1.3 php支持面向对象
职业规划:
PHP + 前端技术 ===> 全栈工程师
架构师
python(对项目架构和运维[负载,读写分离,优化等等 ,大流量,大并发,大数据]) + linux(centos/ubuntu) + unix(freebsd, solars) + 算法
cto => 首先技术官
ceo => 首先执行官
1.4 类与对象的关系
l 介绍
在面向对象编程中,最重要的概念就是 类 和对象,因此我们必须将他们的关系和区别搞清楚
举例说明:
说明: 从上面的代码我们可以看出
(1) 一个类可以创建多个对象
(2) 不同的对象的标识符#编码,是不一样的,有系统在创建对象时分配的标识符,按编号的顺序分配
1.5 如果理解类与对象
1.6 类的定义
class 类名{
访问修饰符 成员属性1;
访问修饰符 成员属性2;
//.....
}
1.7 成员属性
l 文档说明
类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚
本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。
l 通俗说明:
成员属性是类的一个组成部分,一般是基本数据类型(整数,字符串等),
也可是复合类型(对象、数组) , 资源类型。比如我们前面定义猫类的
public $age 就是成员属性。
l 代码举例说明
1.8 创建对象的说明
说明
(1) 在使用默认构造方法时,创建对象的
$对象名 = new 类名()
$对象名 = new 类名
等价
举例:
(2) 如何访问成员属性
(3) 类名的规范说明
类名不区分大小写.
类名命名规范
关于函数,变量,常量,接口等等的命名规范,请参考手册.
1.9 对象传递方式(重点, 难点)
l 先请大家看一段代码,从而引起思考
注意当 对象传递方式是 $p1 = $p2 , 分析如上图
注意当 对象传递方式是 $p1 = &$p2 , 分析如上图
1.10 成员方法(函数)
l 看一个需求
当我们需要让对象完成某个任务(比如计算,比如上传下载文件,分页等等), 就需要在类中定义函数, 这时我们就将这样的函数称为 成员方法.
代码走:
原理分析图如下:
l 成员方法的基本语法
class 类名{
成员属性;
访问修饰符 function 成员方法1名(形参){
方法体;
return 语句;//[是有程序员自己决定的,]
}
访问修饰符 function 成员方法1名(形参){
方法体;
return 语句;//
}
}
说明
(1) 成员方法定义在类中.
(2) 成员方法前面可以有访问修饰符,如果你不写,默认为public
(3) 成员方法的运行原理和普通的函数是一样的.
l 成员方法的小结
l 类定义的进一步完善
第二章 构造方法(函数)
2.1 一个需求,引出构造函数
什么是构造函数呢?在回答这个问题之前,我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就指定这个对象的年龄和姓名,该怎么做?
2.2 构造函数的基本介绍
l 基本语法
class 类名{
//构造函数
访问修饰符 function __construct(形参列表){
//可以对成员属性进行初始化.
}
}
说明
(1) 构造函数的访问修饰符可以是 public , protected, private , 一般情况下是public ,默认就是public
(2) __construct 是关键字,不能修改, __ 是两个_ 下划线。
(3) 构造函数没有返回值, 即没有return
(4) 构造函数是系统调用的,程序员不能显示调用
2.3 快速入门案例
走代码:(基本的使用案例).构造函数并不起到创建对象的本身,只是去完成初始化,当创建的时候,已经被创建了的。
2.4 构造函数的细节和注意事项
l 构造函数没有返回值,即没有return, 就算写了也没有用处
在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的
l 初始化
l 构造函数的作用是完成对成员属性的初始化任务,而不是创建对象本身. 所以以后在oop编程中,需要对成员属性进行初始化,则将这段代码放在构造函数中即可
l 在一个类中,构造函数有且只能有一个, 如果定义多个,就会报错.
l 在php4中,可以使用 类名作为构造函数,在php5中也支持
构造函数:就是完成对属性的初始化!
读写分离:mysql的时候,将读的操作和写的操作分开处理。在项目开发中,我们要注意几个地方:1、如果数据量过大,光靠数据分离是不管用的,还要用分表、分区进行辅助,有时候还会用到缓存。
2.5 默认构造函数