PHP面向对象基本概念
1.面向对象的基本概念
1.面向对象编程(OOP)
面向对象分析(Object Oriented Analysis,OOA)
面向对象设计(Object Oriented Design,OOD)
面向对象编程(Object Oriented Programming)
2.类
概念
类是属性和方法的集合.是面向对象编程最核心的东西。也是它的基础。所以通过类呢,我们可以将一些零散的用来去实现某一个功能的代码进行一些管理。
3.对象
概念
对象呢,是类进行实例化之后的一个产物。它是一个实体,是一个独立的个体
4.面向对象的三大特征
封装性
封装性也可称之为信息隐藏,就是把一个类的使用和实现分开,只保留有限的接口(方法)与外部练习。同时也避免程序之间的 相互依赖而产生的不便
继承性
继承性就是派生类(子类)自动继承一个或多个基类(父类)中的属性与方法。并且我们可以重写和添加新的属性方法。可以简化对象和类的创建,提高代码的可复用性,继承分单继承和多继承。PHP 中支持的是单继承。一个子类有且只有一个父类
多态性
同一个类的不同对象,调用一个方法可以获得不同的结果。增强程序的灵活性和重用性
8、"$this->" 和"::"的使用
$this
PHP通过为变量"this->“和作用域操作符”::“来实现访问自己的成员变量和成员方法的。 **1.this−>“和作用域操作符”::“来实现访问自己的成员变量和成员方法的。
在本类内部
通过"this” 访问当前类实例化的对象。调用方法或成员变量的话,则使用"this"访问当前类实例化的对象。调用方法或成员变量的话,则使用"this->成员变量”||“this->成员方法” 来访问成员方法和变量。所以"this−>成员方法"来访问成员方法和变量
注
"this->"只在类的内部使用
示例
操作符::
$this只能在类的内部去使用。操作符"::"可以在没有声明任何实例的情况下,访问类当中的成员方法或成员变量
语法
关键字::变量名|常量名|方法名
关键字有3种情况
parent
可以调用父类中的 成员变量,成员方法和常量
示例
继承里面
self
可以调用当前类中的 静态成员和常量
类名
可以调用本类中的静态变量,常量和静态方法
示例
1.类的定义
通过 class 关键字加类名来定义类
示例
2.成员方法
概念
类中的函数被称为成员方法
注意
函数与成员方法的区别
就是函数实现的是某个独立的功能。而成员方法实现的是类的一个行为,它是类的其中一部分
示例
调用成员方法
通过对象->成员方法 来调用成员方法
示例
3.类的实例化
通过 new 关键字 实例化对象
示例
4.成员变量
概念
类中的变量,也称为成员变量。有些人也把它叫做属性或者字段。成员变量的是用来保存数据信息。或者与成员方法进行一些交互来实现某项功能
定义成员变量和成员方法
关键字(修饰符) 成员变量名
关键字可以使用public ,private, protected, static 中的任意一个
访问成员变量和成员方法
对象->成员变量
注意
t
h
i
s
−
>
所
用
是
调
用
本
类
中
的
成
员
变
量
或
成
员
方
法
。
无
论
使
用
的
是
"
this-> 所用是调用本类中的 成员变量或成员方法。 无论使用的是"
this−>所用是调用本类中的成员变量或成员方法。无论使用的是"this->" 还是"对象名->"哪种格式,后面的变量名是没有$符号的
示例
5.类常量
常量是在程序运行期间,不可改变的量,我们说他是一个恒值,举例圆周率就是一个常量
定义常量
1.define(“常量名”,“常量值”,true|false【是否区分大小写,true为不敏感】)
调用成员常量
1.通过对象名称::常量名称.
示例
2.通过 类名::常量名称
示例
6 构造函数和析构函数
构造函数
当一个类实例化为一个对象的时候,可能可能会随着对象的初始化而初始化一些成员变量。就是给一些成员变量复制值。这种情况下我们就可以使用构造函数。因为咱对象实例化过程当中构造函数是自动执行的
示例
注意
构造函数是在初始化对象时使用的,如果类中没有构造方法,PHP 会自动生成一个构造函数,自动生成的构造方法是没有参数的
析构函数
析构函数的作用和构造方法方法刚好相反,是对象被销毁时被调用的,作用是释放内存
示例
7 继承和多态
最根本的作用
完成代码的重用。
继承
子类继承父类的所有成员变量方法,包括构造方法,当子类被实例化的时候,PHP 会先在子类当中找构造方法,如果子类已经有自己的构造方法。PHP 会先调用子类的方法。当子类当中没有的时候,PHP 才会去调用。父类当中的构造方法,这就是继承
示例