opp :面向对象编程(object oriented programming)
对象
对象是由属性和方法组成的,是类的实例化;
类
类是相同属性和方法的集合
类
类的定义
class A { //属性(成员变量) //方法 }
类由属性,方法,构造函数,析构函数构成类是复杂类型
属性=访问修饰符+普通变量(也叫成员变量)
方法=访问修饰符+函数
构造函数创建对象的时候 自动执行 不能手动执行 用来给属性初始化的
函数名是规定好的魔术方法名 访问修饰符(默认public)function __construct(参数){} public可以省略
析构函数销毁对象的时候自动执行 同样不能手动执行
函数名是规定好的魔术方法名 访问修饰符(默认public)function __destruct(){} public可以省略
构造函数和析构函数的区别在于一个能传参一个不能
对象是先创建后销毁 就像栈一样
对象
对象的创建
- 对象由new关键字加类名创建,没参数括号可以删除
$obj=new A();
对象可以理解为变量 - 对象是类的实例化
- 访问对象里的属性和方法用->;
- 注意:想要调用属性必须通过对象
- 类,对象,属性,方法在堆栈(内存)中的分布
- 命名法
- 帕斯卡命名法(大驼峰)
- 开头首字母大写,后面单词的首字母大写
- 骆驼命名法(小驼峰)
- 1,开头首字母小写,后面单词的首字母大写
- 2,字母与字母之间用'_'隔开
- 匈牙利命名法
- 变量类型+变量名
访问修饰符(public,private,protected)
public 公有的)
既可以在类的内部访问也可以 在类的外部访问
private (私有的)
只能在类的内部访问
protected (受保护的)
只能在类的内部和子类中访问 (能在整个继承链中访问)
封装
访问修饰符的作用就是用来封装的
封装的目的就是 提供有选择性的数据和访问
继承
继承使用关键字 extends
class 子类 extends 父类{}
子类可以继承父类的属性,方法,构造函数
注意:子类虽然能继承父类的属性,和方法但是如果属性和方法在父类的访问修饰符是private时子类不能访问
一般子类没有构造函数的时候 会继承父类的构造函数,而子类有构造函数的时候就不会继承父类的构造函数 这时如果要继承父类的构造函数可以使用 parent::__construct()或者父类名::__construct();
$this
表示对当前对象的引用(谁访问了我的)