在面向对象中,关键结构包括以下几个:
1. 类:class,是定义面向对象主体的最外层结构,用来包裹主体的数据和功能(函数)。类是一类具有共性事务的代表,代表的是事务的共性。
2. 对象:object,是某类事务的具体代表,也是实际数据和功能操作的具体单元,也被称之为实例(instance)
3. 实例化:new,从一个抽象的概念(类)得到一个符合抽象概念的具体实例(对象)的过程
4. 类成员:member,指类class结构中的所有内容,类成员里有三种
* 方法:method,本质是在类class结构中创建的函数,也称之为`成员方法`或者成员函数
* 属性:property,本质是在类class结构中创建的变量,也称之为`成员变量`
* 类常量:constant,本质是在类class结构中创建的常量
PHP
<?php
#定义买家类
class Buyer{
public $name;
public $money = 0;
}
//实例化对象
$b = new Buyer();
//访问属性
echo $b->money;
//修改属性
$b->money = 1000;
//删除属性
unset($b->name);
//新增属性
$b->age = 20;
**总结**
1. PHP类结构中有三种成员:属性、方法和类常量
2. 类结构中只能有三种成员,不限数量,其他代码需要写到方法里面,否则报错
3. 类中属性和方法的访问方式都是通过对象来调用:$对象->属性名/方法名();注意属性名不带$符号
4. 类中定义属性不能直接使用属性名,需要使用符号public修饰
访问控制:
PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。
public(公有):公有的类成员可以在任何地方被访问。
protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。
private(私有):私有的类成员则只能被其定义所在的类访问。
this关键字:当前对象
类的继承/派生: extends 来继承一个类,格式如下:
PHP
class Child extends Parent {
// 代码部分
}
重写:overwrite(子类重写父类方法)
如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。重写方法权限:重写方法权限只能放大,不能缩写
parent关键字: parent::work();
PHP
// 构造方式,实现各个方法访问过滤功能
function __construct(){
// 为避免覆盖父类构造方法,先执行父类构造器
parent::__construct();
// echo "登陆过滤";
// session里面是否保存了u_username
if (!session('?u_username')) {
// 提示登陆,跳转到登陆页面
$this->redirect('User/login');
}
}
final关键字:修饰类,不可继承,修饰方法,不可重写
魔术方法:在特定时机,系统自动调用的方法
__get() :访问私有/受保护属性
__set() :设置私有/受保护属性
__isset() :判断
__unset() : 销毁公共属性
—autoloade():
self关键字
类常量
静态属性,静态方法
抽象类:
PHP
abstract class Dog{
}
抽象类不能实例化对象
抽象类存在的目的是为了让子类继承
子类必须实现抽象类的抽象方法
接口:interface,类结构,可继承
implements
接口和抽象类的区别是什么
trait:用来模拟实现多继承
use
命名空间
异常处理:
try catch