美文网首页
面向对象编程

面向对象编程

作者: 星月落 | 来源:发表于2021-12-03 13:23 被阅读0次

    将产生不同的执行结果,即不同类的对象收到相同的消息时得到不同的结果。面向对象编程(Object Oriented Programming,OOP)是一种被很多语言广泛支持的编程模式,有别于之前的面向过程编程。面向对象编程的思想是把具有相似特性的事物抽象成类,通过对类的属性和方法的定义实现代码共用。其将实现某一特定功能的代码部分进行封装,这样可被多处调用,而且封装的粒度越细小被重用的概率越大。面向对象编程的继承性和多态性也提高了代码的复用度。总之,面向对象编程充分地体现了软件编程中的“高内聚,低耦合”的思想。

    面向对象编程就是要把需要解决的问题抽象为类。在现实生活中,我们可以找到很多这样的例子,比如可以抽象出这个世界上的一个物种为人类,人类具有身高、体重、腰围等属性,同时人类还可以执行一些动作,比如行走、吃饭、跳跃等。同理,在编程中,抽象出的类也具有这样的属性和动作,不过在类中,我们把这种“动作”称作类的方法。比如常用的数据库连接类,在这个类中一般会包含数据库类型、数据库的HOST、数据库用户名和密码等属性,同时也包含一些数据库操作的方法,如插入、更新、查询、删除数据等。

    面向对象程序设计(Object-Oriented Programming,OOP)的主要优势就是把程序设计的重心从处理过程转移到对现实世界实体的表达。这十分符合人们的自然思维方式。

    类(Class)和对象(Object)并不难理解。试想一下,在日常生活中,自然人对事物的认识,一般是由看到的、感受到的实体(日常生活中的吃穿住行)归纳出来的,或者抽象出它们的类。比如,当看到楼下停的汽车都是Polo或QQ的时候,人们自然会想到,这些都是“两厢车”;当衣柜里到处都是NIKE、adidas的时候,人们会想到,这些都是“运动装”。“两厢车”“运动装”就是抽象出的类。这就是人们认识世界的过程。

    程序员需要在计算机的世界中再造一个虚拟的“真实世界”。在这里,程序员就要像“造物主”一样思考,要先定义“类”,再由“类”创建一个个“实体”,也就是一个个“对象”。

    请考虑这样的情况:过年的时候,有的地方要制作“点心”,点心一般会有鱼、兔、狗等生动的形状,而这些不同的形状是由不同的“模具”做出来的。在这里,鱼、兔、狗等不同的点心就是实体,最先刻好的“模具”就是类。要注意的是,这个“模具”指的是被刻好的“形状”,而不是制作“模具”的材料。如果能用意念制作出一个个点心,那么意念的“形状”就是“模具”。

    对象(Object)在OOP中是由属性和操作所组成。属性(Attribute)就是对象的特性或与对象关联的变量。操作(Operation)就是对象中的方法(Method)或函数(Function)。

    由于OOP中最为重要的特性之一就是封装性,因此访问对象内部的数据只能通过对象的“操作”来完成,这也被称为对象的“接口”(Interface)。因为类是对象的模板,所以类描述了对象的属性和方法。

    面向对象程序设计具有三大特点。

    [if !supportLists](1)[endif]封装性。将类的使用和实现分开管理,只保留类的接口,这样开发人员就不用知道类的实现过程,只需要知道如何使用类即可,从而大大地提高了开发的效率。

    (2)继承性。“继承”是面向对象软件技术中的一个概念。如果一个类A继承自另一个类B,就把这个A称为“B的子类”,而把B称为“A的父类”。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,还可以为子类追加新的属性和方法。继承可以实现代码的可重用性,因而简化了对象和类的创建过程。另外,PHP只支持单一继承,也就是一个子类只能有一个父类。

    (3)多态性。多态是面向对象程序设计的重要特征之一,是扩展性在“继承”之后的又一重大表现。同一操作作用于不同的类的实例

    欢迎关注微信公众号“PHP基础入门教程”,谢谢支持!

    相关文章

      网友评论

          本文标题:面向对象编程

          本文链接:https://www.haomeiwen.com/subject/rygpxrtx.html