面向过程的编程思想
- 面向过程是一种编程思想。如:递归思想,冒泡思想,二分查找等
- 面向过程是以过程(步骤)为中心的编程思想
- 面向过程是人类解决问题的习惯,就是方法步骤。
- 将一个大的问题,分析成若干个小问题,然后一个一个的小问题去解决,最终大问题就会解决。
- 面向过程的优点,执行速度快,不适合大项目
例如 :上传一个产品
- 前段页面(upload.html),就是上传产品的表单,如:产品的名称,产品的价格,产品图片,产品简介等。
- 后端页面(upload.php)主要来处理表单发送过来的数据。
判断表单的来源是否合法
获取表单普通提交值
上传产品图片
连接mysql数据库,选择数据库。
将产品数据写入数据库
跳转到产品列表页(list.php)
–连接mysql数据库、选择当前数据库
–读取数据库中产品信息,并用< li> 标记展示出来
–产品数据分页
——————
面向对象的编程思想
- 面向对象是一种编程思想,面向对象开发,可以开发大型项目,重点在于合作开发。
- 面向对象是以事物(对象)为中心的编程思想。
- 换句话说,每一步都是一个对象,用对象帮我们完成工作,分任务。
- 面向过程着重于 “做什么”,面向对象着重于“谁来做”
—
实例:上传一个产品
前端页面(upload.html),就是上传产品的表单。如:产品名称、产品价格、产品图片、产品简介等。
后端页页(upload.php):主要用来处理表单发送过来的数据。
判断表单的来源是否合法。
获取表单普通提交值。
上传产品图片(上传图像)。
连接MySQL数据库、选择数据库(数据库对象)。
将产品数据写入数据库(数据库对象)。
跳转到产品列表页(list.php)。
连接MySQL数据库、选择当前数据库(数据库对象)。
读取数据库中产品信息,并用 - 标记展示出来。
产品数据分页(分页对象)。
类和对象的关系
1. 类的概念
类就是分类、类别、概念、理论、无形的、看不见、摸不着。如:人类、汽车、电脑等。
类是由相同特征(属性、静态的)和行为(方法、动作)的一组对象构成。
类可以看成“图纸”。“楼房”就是对象。
设计一个类,其实是最难的,使用类最简单的。
举例:黑马5期的全体学生,都有相同的属性:学号、姓名、性别、身份证、籍贯等。相同方法:学习。因此,把全部学生归为一个类,这类就是“黑马5期”。
2. 对象的概念
对象就是一个一个的实体,看得见、摸得着。
必须先有类,才有对象。每个对象必须归属于哪个类。
一个类可以产生N个对象。
“汽车模型”就是一个类,由汽车模型生成的一辆辆汽车,就是一个一个的对象。
对象也是属性和方法构成。
例如:“小明”是“黑马5期”的一个学生,也是一个对象。小明的属性有:学号、姓名、性别、身份证、籍贯等。小明也有“方法”“行为”:学习、开车、开飞机等。
在现实中,先有对象,后有类。
在电脑中,先有类,再有对象。
类的定义
1、类的定义语法
举个栗子
定义类的成员属性
- 成员属性介绍
- 成员属性(特性、特征),就是普通变量。
- 成员属性和普通变量的区别,成员属性必须要加权限控制符,而普通变量不需要。
2、定义格式
3 、 访问修饰符(权限控制符)
权限作用:主要用来保护数据安全的。
public(公共权限):在任何地方都可以访问,主要指类内、类外、子类中都可以访问。
protected(受保护的权限):只能在本类中、子类中被访问,在类外不能被访问。
- private(私有的权限):只能在本类中被访问,在类外、子类中都不能被访问。 注意:成员属性必须要加权限控制符,不能省略
4、举例说明
定义类的成员方法
1、成员方法介绍
- 什么是“成员”?成员就是对象的意思。因此,成员方法,就是对象方法。成员属性,也是对象属性。既然是对象的东西,必须通过对象才能调用。
- 成员方法,其实与普通函数相似。区别:成员方法是在类中定义的,而普通函数是在类外定义。成员方法要加权限控制符,而普通函数不需要。成员方法也可以调用,也有参数,也有返回值。
- 提示:成员方法的权限不是必须的,可以省略,省略后默认为public。但不建议省略。
2 定义格式
3、举例说明
创建类的对象
1、实例对象含义
- 类必须要创建对象,只能是对象帮我们来完成工作。
- “对象实例化”:从一个类来创建对象的过程。
- 一个类可以创建N多个对象。类几乎不占用服务器内存,每一个对象都会占用服务器内存。
- 类和对象,都是存在于服务器内存中的,不在客户端。
2、语法格式
在JS中,创建对象的语法:var today = new Date()
在PHP中,创建对象的语法 $obj = new Student()
创建类的对象,是使用new关键字来创建。new关键字创建的对象都是新对象,都是独立对象,都有自己独立的内存地址。
3、举例说明
对象属性的操作
1、访问对象的属性和方法
在JS中,访问对象的属性和方法,通过”.”来访问。如:arrObj.length、document.write()
在PHP中,访问对象的属性和方法,通过”->”来访问。如:
obj−>name、
o
b
j
−
>
n
a
m
e
、
obj->showInfo()
提示:必须先有对象,才可能有对象属性。没有对象,一定没有对象属性或方法。
2、对象属性的操作:增加、删除、修改、读取
对象方法的操作
对方法的操作,就是对普通函数的操作。包括:调用方法、向方法传值、返回值。
注意:方法不能删除,但成员属性可以。
伪变量$this使用
1、$this变量含义
- JS中的this用来代表当前对象的。如:this.src = “images/01.jpg”
- PHP中的 this用来代当前对象的。如: t h i s 用 来 代 当 前 对 象 的 。 如 : this->name
- $this用来代表当前对象,不代表类。
- 当前对象存在, this就存在,否则, t h i s 就 存 在 , 否 则 , this不存在。
- $this只能用在成员方法中,其它任何地方都不能使用。
$this用来调用对象的内容,包括:成员属性(对象属性)、成员方法(对象方法)。
this是怎么来的?当使用对象调用成员方法时,那个对象就会自动传递到成员方法中。要成员方法中,要使用 t h i s 是 怎 么 来 的 ? 当 使 用 对 象 调 用 成 员 方 法 时 , 那 个 对 象 就 会 自 动 传 递 到 成 员 方 法 中 。 要 成 员 方 法 中 , 要 使 用 this来代替传递进来的当前对象。
2、举例说明
定义类的常量
1、类常量介绍
- 使用const关键字来定义类的常量。define()定义的为全局常量。
类常量,就是类的常量,跟对象没有关系。
类常量只占一份内存,不管创建多少个对象。
类常量,主要用来存储一些不变的值,常量不能修改,常量不能删除。
类常量的好处:节省服务器内存空间。
const定义的常量是属于类的东西,只能通过类名来调用。如:Student::TITLE
成员属性和成员方法是对象的东西,只能通过对象来调用。如:$obj->name
如何访问类的常量?访问格式为:”Student::TITLE”。其中”::”可以称为静态调用方式。调用类的东西,都要通过”::”来调用。类的东西,都称为”静态东西”。
类常量没有权限控制符。可以在类内或类外都能访问。
常量的名称尽量全大写,与变量区分开。
2、定义格式
3、举例说明
静态属性和静态方法
1、概述
static关键字修饰的属性就是静态属性;
static关键字修饰的方法就是静态方法;
静态属性和静态方法,是与类相关的,与对象无关。
静态属性和静态方法在内存中只有一份,不会随着对象的增加而增加。
静态属性就是类的属性;静态方法就是类的方法。
成员属性就是对象属性;成员方法就是对象方法。
对象的东西通过”->”来调用;而类的东西通过”::”来调用。
静态属性和静态方法,也有权限控制符。
2、举例说明
3、可以指定多个修饰符
静态属性或静态方法,同时可以指定多个修饰符,多个修饰符之间没有先后顺序。
4、self关键字
this代表当前对象,self代表当前类。
t
h
i
s
代
表
当
前
对
象
,
s
e
l
f
代
表
当
前
类
。
this用来调用对象的东西,而self用来调用类的东西。
this通过”−>”来调用对象的东西,而self通过”::”来调用类的东西。例如:
t
h
i
s
通
过
”
−
>
”
来
调
用
对
象
的
东
西
,
而
s
e
l
f
通
过
”
::
”
来
调
用
类
的
东
西
。
例
如
:
obj->name、
obj−>show()、self::
o
b
j
−
>
s
h
o
w
(
)
、
s
e
l
f
::
name、self::show()
$this只能用在成员方法中。self可以在成员方法和静态方法中。
构造方法
1、什么是构造方法
当通过new关键字创建对象时,第1个自动调用的方法,就是构造方法。
构造方法的作用:对对象进行初始化。例如:给对象属性赋值、数据库对象初始化。
构造方法的名称是固定的:__construct()
构造方法可以有参数,也可以没有参数,但括号不能省略。
构造方法的参数是如何传递的?当new一个类时,后跟的括号中的参数,就是构造方法的参数。
构造方法中没有return语句,或者return语句无效。
构造方法只能是成员方法。
2、语法格式
3、举例说明