【web 开发基础】PHP 中的类和对象(55)
前言
面向对象编程的主要优势就是把编程的重心从处理过程转移到了对现实世界实体的表达。这十分符合人们的思维方式和逻辑类(classes)和对象(objects)并不难理解。试想一下,在日常生活中,自然人对事物的认识,一般是由看到的、感受到的实体(比如日常生活中的衣食住行)归纳出来的,或者抽象出它们的类。比如,当看到楼下停的汽车中都是 Polo 的时候,人们自然会想到,这些都是“两厢车”,“两厢车”就是抽象出的类。这就是人们认识世界的过程。然而程序员需要在计算机的世界中再造一个虚拟的“真实世界”。那么,在这里程序员就要像“造物主”一样思考,相当于站在上帝的角度。就是要先定义“类”,再由“类”产生一个个“实体”,也就是一个个“对象”。
比如:在过年的时候,有的地方要制作“点心”或者糕点,点心一般会有鱼、兔、狗等生动的形状。而这些不同的形状是由不同的“模具”做出来的。那么,在这里鱼、兔、狗的一个个不同的点心就是实体,最先刻好的“模具”就是类。要明白,这个“模具”指的是被刻好的“形状”,而不是制作“模具”的材料。如果你能像造物主一样用意念制作出一个个点心,那么,你的意念的“形状”就是“模具”。也就是我们常说的类是对象的模板。
什么是 OOP
OOP 是 Object-Oriented Programming(面向对象编程)的缩写。对象(object)在 OOP 中是由属性和操作组成的。属性(attributes)就是对象的特性或与对象关联的变量。操作(operation)就是对象中的方法(method)或函数(function)。
由于 OOP 中最为重要的特性之一就是可封装性,因此对对象内部数据的访问只能通过对象的“操作”来完成,这也被称为对象的“接口”(interfaces)。因为类是对象的模板,所以类描述了对象的属性和方法。
另外,面向对象编程具有三大特点。
封装性
封装性:将类的使用和实现分开管理,只保留类的接口,这样开发人员就不用知道类的实现过程,只需要知道如何使用类即可,从而大大地提高了开发的效率。
继承性
继承性:“继承”是面向对象软件技术中的一个概念。如果一个类 A 继承自另一个类 B,就把这个 A 称为“B 的子类”,而把 B 称为“A 的父类”。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,还可以为子类追加新的属性和方法。继承可以实现代码的可重用性,简化对象和类的创建过程。另外,PHP 支持单继承,也就是一个子类只能有一个父类。
多态性
多态性:多态是面向对象程序设计的重要特征之一,是扩展性在“继承”之后的又一重大表现。同一操作作用于不同的类的实例将产生不同的执行结果,即不同类的对象收到相同的消息时,得到不同的结果。
版权声明: 本文为 InfoQ 作者【迷彩】的原创文章。
原文链接:【http://xie.infoq.cn/article/65490811459875e74b389a68b】。文章转载请联系作者。
评论