抽象数据类型和面向过程与面向对象

halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点

【更新日志】

最近更新:

  • 暂无编辑记录,内容持续更新中……

大体概述

大体概述

详细概念

抽象数据类型

  • 抽象数据类型(Abstract Data Type,ADT),是描述数据结构的一种理论工具,目的是独立于程序的实现细节来理解数据结构的特性
  • 抽象数据类型的定义取决于它的一组逻辑特性,与计算机内部如何表示无关
  • 抽象数据类型的特征主要体现在数据抽象、数据封装、继承性、多态性几个方面
  • 抽象数据类型三要素(D,S,P):数据对象(D),数据关系(S),基本操作(P)

抽象、封装、继承、多态

抽象

  • 即数据抽象。用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)
  • 抽象指将具有一致的数据结构(属性)和行为(操作)的一些实体抽象成一个模型
  • “抽象”的意义在于数据类型的数学特性,其数学特性和具体的计算机或语言无关

封装

  • 封装指将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节,即

    • 将数据和其行为结合在一起,形成一个不可分割的独立单位
    • 信息隐藏,即尽可能隐藏数据内部细节,只留有限的对外接口形成一个边界,与外部发生联系。封装的原则使得软件错误能够局部化,大大降低排错的难度,便于软件的维护

封装描述

继承

  • 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系
  • 在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容
  • 在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重用性
  • 采用继承性提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性

继承描述

多态

  • 多态性指在一般类型中定义的数据或行为被特殊类型继承后,可具有不同的数据类型或呈现出不同的行为
  • 多态性允许每个对象以适合自身的方式去响应共同的消息
  • 多态性增强了软件的灵活性和重用性
    在这里插入图片描述

面向过程与面向对象

面向过程

  • 面向过程是一种以过程为中心的编程思想,即分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个个依次调用

面向对象

  • 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的的步骤中的行为
  • 面向对象的三大基本特征:封装、继承、多态
  • 面向对象的四大特性:抽象(对象唯一)、封装、继承、多态

两者区别
举一个好玩儿的例子,把大象装进冰箱
在这里插入图片描述
具体区别

  • 面向过程没有面向对象的封装、继承、多态的特性
  • 面向过程性能比较高,对于像单片机、嵌入式开发等一般采用面向过程开发,但没有面向对象易维护易复用易扩展
  • 面向对象易维护、易复用、易扩展,但由于类调用时需要实例化,相对于面向过程开销比较大

易混区分

面向对象与基于对象

  • 面向对象的三大基本特征(封装、继承、多态)缺一不可
  • 基于对象通常是使用对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说“基于对象”没有继承的特点,没有了继承的概念自然也无从谈论多态
  • 判断一个新的技术是否是面向对象的时候,通常可以使用继承与多态两个特性加以判断。“面向对象”和“基于对象”都实现了封装的概念,但是“面向对象”实现了继承和多态,而“基于对象”没有实现这些

面向对象与基于对象描述

持续更新中……
我是桐小白,一个摸爬滚打的计算机小白

猜你喜欢

转载自blog.csdn.net/bay_Tong/article/details/107302419