面向对象编程与面向过程编程的区别与联系

 

LinuxC编程的学习已经告一段落,这段开始学C++。C++是面向对象编程,C语言是面向过程编程。所以学习C++的第一件事就是要弄明白什么是面向过程编程,什么是面向对象编程。算法

以前学习的C语言是面向过程编程,回想一下C语言编程的过程。主函数,定义变量,调用函数而后实现。面向过程编程是一种很是具体,要面面俱到的的编程方式。而面向对象是以对象为单位来进行编程,比较像正常人的思惟。编程

下面咱们举个例子,好比开车、加速、减速、刹车。模块化

用面向过程来讲就是你要先有一个车,而后这四个分别是4件事,也就是说你要写4个函数,分别是开车、加速、减速、刹车,这分别是四个事件,若是使用的话要调用4个函数。函数

可是对于面向对象的编程来讲,咱们关心的是车这个类,而不是开车、加速、减速和刹车这四个过程。这4个过程是车这个类的一部分,只是其中的一种行为,并且对于行为的顺序没有强制要求。学习

两种思想的对比:对象

面向过程是具体的东西,并且面向过程是面向对象的基础。面向对象能够说是面向过程的抽象,好比汽车有开车,加减速和刹车,关于汽车的操做有好多,每个都须要一个具体的过程来实现,把这些过程抽象的总结起来就能够造成一个类,这个类包括的汽车全部的东西,全部的操做。事件

总结来讲就是,面向过程是一种基础的方法,它考虑的是实际的实现,通常状况下,面向过程是自顶向下逐步求精,其最重要的是模块化的思想方法。所以在模块化编程的时候才会有“低耦合,高内聚”的思想来提升效率。面向对象的方法主要是把事物给对象化,包括其属性和行为。当程序较小的时候,面向过程就会体现出一种优点,其程序流程十分清楚。可是,面向对象编程更贴近实际生活的思想。面向对象编程

面向过程和面向对象的本质理解效率

面向过程是具体化的,流程化的。解决一个问题,须要一步一步分析须要怎样,而后须要怎样,一步一步实现的。面向对象是模型化的,抽象出一个类,这是一个封闭的环境,在这个环境中有数据有解决问题的方法,你若是须要什么功能直接使用就能够了,至因而怎么实现的,你不用知道。基础

从代码层面来看,面向对象和面向过程的主要区别就是数据是单独存储仍是与操做存储在一块儿。在类的里边,实现具体的功能仍是须要流程化、具体化的代码去实现的,在类里仍是须要具体的算法来实现的。总结来讲面向对象的底层仍是面向过程,面向过程抽象成类,而后封装,方便使用就是面向对象。

相关文章
相关标签/搜索