php面向对象
时间:2023-3-1 22:04 作者:wen 分类: PHP
面向对象:
编程的思想:
1 什么是面向对象
对现实世界的理解和抽象 的方法,一切事物(具体,概念,思想...)都是对象
现实世界中 ---》 代码 抽象成 类 封装 继承.. 方便于人们对现实世界进行抽象和数字建模
面向对象的3大特征:
封装,保护起来
多态,多种状态 ---》 共同前提(活着) --》人活得方式不同(多态)
继承,父类--》子类拥有
2 面向对象 4个概念:
类: 抽象,一种事物的集合,(具有相同的属性和方法)
属性: 事物的特性, 与生俱来能用"有".
方法: 定义功能 用"能"形容
对象
封装关键词:属性和方法 隐藏起来,不能随便调用和更改,保护代码作用
类内部 类外部 子类
1 public 公共 可以 可以 可以
2 protected受保护 可以 不可以 可以
3 private 私有 可以 不可以 不可以
注意 :修饰词 function public(默认不写) function protected fucntion private function
封装时候,封装等级,子类 <= 父类级别
私有成员 等级严格 ,类内 可用。
private $name; ---> public protected 直接修改封装关键词
两个_
注意:改变private的访问范围
__set($n,$v) 对私有属性进行复制
__get($n) 对私有属性取值
执行函数的时候 自动调用以下两个方法
__isset() 检查私有属性是否存在的
__unset() 删除私有属性调用
isset() 函数 可以判断变量是否存在,判断不了属性
开发: 零散 知识点,带入项目,用到实际中
类中常用的关键字:
final 最终
self 自己
static 静态
const 常量
final 修饰类 方法,属性不能修饰
final 不能被继承
final 不能被覆盖
static self
static 静态成员: 修饰属性和方法 不能修饰类
static属性属于类 ,与对象无关
类外部 调用static 成员:
类名称::成员 不需要实例化 ******
类内部: ******
类名称::成员
self::成员
const 常量 类中常量:
类外部:define("常量名称",value)
常量定义: 常量名称全大写,给默认值,常量名称不需要$*****
类内部
类名称::成员
self::成员
类外部:
类名称::成员
魔术方法
__construct() //构造函数
__destruct() //析构函数
__get($n) //获取私有属性
__set($n,$v) //设置私有属性
__isset($n) //检查属性
__unset($n) //删除属性
__call($fun,$arr) //对象调用了不存在的方法,系统报错,自动调用call
__toString() //对象转化成字符串时候 调用
__clone() //当对象被克隆时,将会自动调用
__sleep() //在序列化的时候 自动调用 序列化对象
__wakeup() //在序列化的时候 自动调用 反序列化对象
__autoload() //自动加载类
序列化
serialize() 产生一个可存储的值的表示
unserialize() 从已存储的表示中创建 PHP 的值
抽象方法
抽象方法 没有 方法体,只能在继承中 被覆盖,在子类中,可以正常调用父类中的普通方法
抽象类: 至少有一个抽象方法的类,(可以有普通方法)
注意:在抽象类,虽然你只是实现部分方法,其他方法都要重写一下
接口:interface
成员属性都是常量,成员方法都是抽象方法
接口和抽象类 区别: 面试题:
抽象类:
类中至少有一个抽象方法,可以有普通方法
abstract class 类名称
继承****
接口:
类中全是抽象方法,不能有普通方法
interface 接口名称
接口中属性都是public 而且都是常量
引用 *****
共同点: 都不能被实例化 ,而且所有的方法都必须被重写(覆盖)
定义接口:
interface 接口名称{
const NAME="张三"; //属性不需要添加 public 默认就是public
function demo(); //方法默认都是 abstract abstract 可以省略
function demo1();
function demo2();
}
接口的引用:
implements 引用关键词
注意:继承单一继承,接口是可以多引用
继承 和 接口如果同时存在 先继承 后引用*****
实用:
接口和抽象类 作用 定义项目规则 ,提倡使用接口:
设计模式:
static: 修饰属性和方法, 静态属性和 静态方法
static 声明的属性和方法,不属于对象,属于类,类属性和类方法
static 使用:
类名称::属性、方法 ---》 不需要实例化
static 属性和方法,内存中只有一个空间,被所有对象共用的
1. 什么是设计模式:
程序:一套被反复使用,经过分类,代码设计经验的总结
优势:
1.效率高
2.安全性
3.促进分工,协作
设计模式: 23种
1. 单例 模式
2. 工厂模式
单例模式:
只创建一个对象(实例),其他所有的对象都指想该对象的内存空间
运行机制:*****
1.定义一个属性---》 static 存放对象 $obj = new...
2.不能再类外实例化
3.当前类对象---》 在本类的一个 static 方法(public)中创建
工厂模式:
工厂模式:通过一个类,产生其他类对象
用同义的方式创建各种对象
应用范围:
用在类调用比较多的页面上
优势:
所有对象的创建,都采用统一的模式
便于代码和方法的管理
作用:
数据库操作类--》单例模式
关键词 const final self static
标签: PHP基础