概念:
类是抽象概念,包含各种属性和行为,比如说狗
对象是具体 概念,如:泰迪
类的内容
关键词
对象定义时不需要加object
类的定义
类成员
成员有三个成员变量,成员方法(函数),类常量
类成员变量的声明和初始化
类成员变量的访问
访问语法$对象名->属性名,也可以当成数组通过print_r打印
类常量的定义和初始化
使用const 常量名 =值
常量可以直接调用,常量存储在静态区,所有这个类的对象都可以调用
调用的话::加常量名
类方法
定义跟外面函数定义相同,调用于成员变量调用相同
this和self
this
this可以调用类的方法和属性避免跟形参相撞
this指代对象而不是类
同一个类生成的对象,但是不同对象的参数可能会有点不同,
self
self:指代类的本身,可以不用创建对象也可以使用类的静态属性和静态方法(static和const)
php魔术方法
PHP中的魔术方法是一类特殊的方法,它们以双下划线(__)作为前缀和后缀,用于在对象的生命周期中执行特定的操作。这些方法包括但不限于
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __set_state(), __clone() 和 __autoload() 等。这些方法在PHP的对象导向编程中扮演着重要的角
构造函数
从类构造成对象。类的实例化时调用,函数生成在函数栈(先进后出),对象生成在堆(堆没有顺序结构)
析构函数
自动释放内存,但不用我们自己编写
public(公有),protected(受保护) private(私有)
• public 公共的(公共修饰符) 类内部与类外部都可以访问的
• private 私有的(私有修饰符) 只能在类内部访问
• protected 受保护的(保护成员修饰符) 子类可以访问 类外部不可以访
oop的三个总要特性(封装,继承,多态)
封装
将具体的事物的共性抽取,所构成的类;如:一群狗,变成狗类。
继承
class 子类 extends 父类{}
子类中调用父类成员
1、方法一:通过实例化父类调用父类的成员
2、方法二:通过$this关键字调用父类的成员
多态
方法重写
替代掉父类继承的函数。
重载 − 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法
所以两个有区别,重写但是参数和数量必须与父类的相同
例子:
接口
定义和用法
关键字interface,implements,主要是为了规范,希望提高代码的可维护性,可重用性和拓展性
举例在action中写了有什么题目在Monkey中把题目完善。用了重写
判断某个类的实例是不是实现了一个接口
关键字instanceof
接口继承
超级全局变量