分类: Windows平台
2017-02-27 20:32:54
面向过程是以过程(步骤)为中心的编程思想;
面向对象是以对象为中心的编程思想;三大特性的说明 继承 多态 封装
封装性:
类的封装性将敏感的数据保护起来,不被外界访问。通过权限控制符来实现
public(公共的权限):任何地方都可以访问,主要指类外、本类中、子类中,都可以访问。
private(私有的权限):只能在本类中被访问。在类外、子类中都无权访问。
protected(受保护的权限):只能在本类中、子类中被访问。在类外无权访问。
继承性:
如果B类拥有了A类全部特征(属性和方法),我们就说,B类继承了A类。
A类称为:基类、父类、上层类
B类称为:派生类、子类、下v层类、后代类
继承:就是将父类的所有东西全部拿过来,一个不剩的。
在继承过程中,继承的东西只有一份,所有权应该属于父类,子类只是使用它。也可以理解为:将父类的内容引用到子类中来引用。
继承的目的是:对原来功能的升级和扩展。如果不需要升级和扩展,就不需要继承了。
功能升级:父类有的功能,子类也有,但是子类比父类更强大、更完善。
功能扩展:父类没有的功能,而子类有。
多态性:
类的多态,指多种形态。
类的多态,主要指方法重载和方法重写。
方法重载:在一个脚本中,定义两个同名方法,PHP不支持。
子类的方法名称,要与父类的方法名称一样;
子类方法的参数个数,要与父类同名方法的参数个数一致;
子类方法的权限,不能低于父类方法的权限。 ? 如果父类方法权限为public,子类方法权限也是public。 ? 如果父类方法权限为protected,子类方法权限是public、protected。
? 如果父类方法权限为private,可以重写,但是无法再调用父类的方法。子类方法的类型,要与父类同名方法的类型一致。要是成员方法,都是成员方法;要是静态方法,都是静态方法。
>首先说说$this
$this只能在成员方法中; $this主要用来调用成员属性和成员方法;只能调用对象的东西。
>接着说说self
self可以在所有方法中使用。self主要用来调用类的常量、静态属性、静态方法,只能调用类的东西。
>关于parent关键字
parent可以调用父类的内容:成员方法、静态属性、静态方法、常量
>最后说说static关键字
static关键字修饰的属性和方法,就是静态属性和静态方法; 静态属性和静态方法,是与某个类相关的,与对象无关。 静态属性和静态方法,不创建对象也能调用。静态属性和静态方法的访问方式:ClassName::静态属性|静态方法.在内存中只有一份,不会随着对象增加而增加。可以节省内存资源static 也可用于后期静态绑定,相对与self来说 self表示的始终是当前的class 而static比较灵活 表示的是当前的累
补充一张图说明内存分配:
Abstract关键字修饰的类,为抽象类;
Abstract关键字修饰的方法,为抽象方法;
抽象类:该类不能实例化,继承后,再实例化。常用于基础类
抽象方法:该方法必须被重写。
抽象方法不能包含方法体,就是函数的大括号。
如果一个类中有一个抽象方法,该类必须定义抽象类。
抽象方法中,可以包含其它成员:成员属性、成员方法、静态属性、静态方法、常量。
抽象方法是方法的命名规范、命名规则。也理解为监督的机制。
final关键字修饰的类,就是最终类;
final关键字修饰的方法,就是最终方法;
最终类:该类只能实例化,不能继承。如果一个类十分完善,不需要升级和扩展,就定义最终类。
最终方法:该方法只能继承,而不能重写。如果一个方法十分完善,不需要重写了,就定义为最终方法。
举例:数据库类,一般都是最终类。