大家一定听说过面向过程和面向对象,但是你知道他们之间的区别吗,今天就来和大家好好聊聊面向过程和面向对象。
面向过程:
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。简写为POP。
目前大家学的语言中C语言是典型的面向过程语言,每当我们使用C语言做一道题的时候,往往是先分析出解决问题的步骤,然后用函数把这些步骤一一实现,使用的时候一个一个调用。这其实就是面向过程的编程思想,面向过程就是所有的工作都是现写现用,面向过程的思维方式是分析综合。
面向对象:
程序员从面向过程的执行者转化为面向对象的指挥者,
面向对象分析问题的思路和步骤:
1.根据问题的需要,选择问题所针对的现实世界中的实体
2.从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类
3.把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序语言,把类构造成计算机能够识别和处理的数据结构
4.将类实例化为计算机世界中的对象。对象是计算机世界中解决问题最终的工具、
面向对象有三大特征:继承,封装和多态。
1.继承:一个类只能有一个直接父类,子类是对父类的拓展,子类可以重写父类的方法,子类可以获得父类的全部成员变量,方法,和内部类,但是子类不能获得父类的构造器。
2.封装:将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
3.多态:其方法行为总是表现出子类方法的行为特征,而不是父类方法的行为特征,这就可能出现:相同类型的变量,调用同一个方法时,呈现出多种不同的行为特征
举例
对于面向过程,程序员需要进行下面几个步骤:
1.把冰箱门打开
2.把大象装进去
3.把冰箱门关上
上面每一个步骤,程序员都会用一个函数来实现。
对于面向对象:程序员依次向不同的对象发送命令就可以了。程序员需要进行的步骤:
1.定义“人”对象,“冰箱”对象,“大象”对象
2.人向冰箱下达“开门”命令,”冰箱“开门
3人向大象下达“进冰箱”命令,“大象”进冰箱
4.人向冰箱下达“关门”命令,“冰箱关门”
面向过程和面向对象的区别
1.编程思想不同:
1、面向过程:是一种以过程为中心的编程思想。都是以什么正在发生为主要目标进行编程。
2、面向对象语言:是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。
2.特点不同:
1、面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
2、面向对象语言:识认性,系统中的基本构件可识认为一组可识别的离散对象,对象具有唯一的静态类型和多个可能的动态类型,在基本层次关系的不同类中共享数据和操作。
3.优势不同:
1、面向过程:不支持丰富的“面向对象”特性(比如继承、多态),并且不允许混合持久化状态和域逻辑。
2、面向对象语言:在内部被表示为一个指向一组属性的指针。任何对这个对象的操作都会经过这个指针操作对象的属性和方法。
看了这篇文章,大家是不是对面向过程和面向对象有了更加深入的了解了呢,快来评论区告诉我们吧。