面向对象是一种计算机编程架构,比面向过程编程具有更强的灵活性和扩展性。面向对象也是一个程序员发展的“分水岭”,很多初学者和略有成就的开发者,就是因为无法理解“面向对象”而放弃。
基本概念
这里所指的面向对象,准确地说应该叫做面向对象编程(OOP),是面向对象的一部分,面向对象包括3部分:面向对象分析、面向对象设计、面向对象编程,面向对象编程的两个重点概念是类和对象。
类
世间万物都有其自身的属性和方法,通过这些属性和方法可以将不同的物质区分开来。例如,人具有身高、体重、和肤色等属性,还可以进行吃饭、学习、走路等能动活动,这些活动可以说是人具有的功能。可以把人看做程序中的一个类,那么身高就是属性,走路就是方法。也就是说,类是属性和方法的集合,是面向对象编程方式的核心和基础。通过类可以将零散的用于实现某项功能的代码进行有效管理。例如创建一个运动类。
五个属性:姓名、身高、体重、年龄和性别
四个方法:踢足球、打篮球、举重和跳高
对象
类只是具备某项功能的抽象模型,实际运用中还需要对类进行实例化,这样就引入了对象的概念。对象是类进行实例化后的产物,是一个实体。例如:“黄种人是人”这句话没有错,但翻过来说“人是黄种人”这句话一定是错误的。因为除了有黄种人,还有黑人、白人等。那么黄种人就是“人”这个类的一个实例对象。对象实际上就是“有血有肉的,能摸得到、看的到的”一个类。
面向对象的三大特性
1)封装性
封装性,也可以成为信息隐藏,就是将一个类的使用和实现分开,只保留有限的接口(方法)与外部联系。对于用到该类的开发人员,只要知道这个类该如何使用即可,而不用去关心这个类是如何实现的。
2)继承性
继承性就是派生类(子类)自动继承一个或多个基类(父类)中的属性和方法,并可以重写和添加新的属性和方法。继承这个特性简化了对象和类的创建,增加的代码可重用性。继承分单继承和多继承,PHP所支持的是单继承,也就是说类有且只有一个父类。
3)多态性
多态性是指同一个类的不同对象,使用同一个方法可以获得不同的结果,这种技术称为多态性。多态性增强了软件的灵活性和重用性。