构造方法
构造方式是类中的一个“特殊”方法,其作用是在实例化一个对象的同时,给该对象的属性赋值,使之一创建完成,就具有了其本身的特有数据(属性值)。
1,该方法名字是固定的,为:__construct();
2,该方法必须是普通方法(不能是静态方法)
3,通常该方法应该是public
4,通常该方法中使用$this这个关键字来对属性进行赋值
5,当new 类名()的时候,其实是在调用该构造方法
6,如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配
结果为:
析构方法
构造方法是“创建”对象的时候会自动调用。
析构方法是“销毁”对象的时候会自动调用。
系统方法通常用于在销毁对象的时候来“清理数据”(打扫战场)——如果需要,就可以利用这个机会去处理。
通常,php程序结束后,所有对象都会自动销毁(其实属于php内部的垃圾回收机制)
说明:
1,析构方法通常不太需要去定义。
2,析构方法不能调用。
3,析构方法不能有形参。
4,析构方法中可以用于清理一些在php代码结束后不能清理的数据,如生成的文件。
对象销毁的几个情形:
脚本程序运行结束,自动销毁;
明确地unset()一个对象变量,则被销毁;
改变对象变量的值,被销毁;
实际上,更本质来说,当一个对象(new 出来的对象)没有任何一个变量指向它的时候,该对象就会被自动销毁——自然,如果整个程序结束,也会销毁。
类的继承
简单理解:
某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息。
基本概念
继承:一个类从另一个已有的类获得其特性,称为继承。
派生:从一个已有的类产生一个新的类,称为派生。
继承和派生,其实只是从不同的方向(角度)来表述,本质上就是一个事情。
父类/子类:已有类为父类,新建类为子类。父类也叫“基类”,子类也叫“派生类”
单继承:一个类只能从一个上级类继承其特性信息。PHP和大多数面向对象的语言都是单继承模式。C++是多继承。
扩展:在子类中再来定义自己的一些新的特有的特性信息(属性,方法和常量)。没有扩展,继承也就没有意义了
访问(权限)修饰符
在类中的成员,通常都可以在前面加上以下3个修饰符:
public:公共的,共有的,公开的
protected:受保护的
private:私有的,
public公有的
用该修饰符修饰的成员,可以在“任何位置”使用(访问)。
访问(使用)是这样一个语法模式:
对象->成员;
类名::成员;
访问位置分为3个:
1:某个类内部:自然是该类的某个方法中
2:某个类的具有继承关系的子(父)类的内部:是指其他类的某个方法中。
3,某个类的外部:一般就是独立的代码区(不在类中),类似我们之前的代码。
代码演示如下:
protected 受保护的
protected修饰的成员,可以在当前类或当前类的上下级具有继承关系的类中访问。
private私有的
private 修饰的成员,只能在其所在的类中访问。
访问修饰限定符的总结:
范围 | 本类内 | 继承关系类内 | 类外 |
public | 可以 | 可以 | 可以 |
protected | 可以 | 可以 | 不可以 |
private | 可以 | 不可以 | 不可以 |