面向过程和面向对象

在我们编写程序的时候,需要明白什么是面向对象和面向过程
一、面向对象与面向过程的区别
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

什么是面向过程呢

“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响

什么是面向对象呢

用专业化角度来的解释 面向对象(Object Oriented,OO)就是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

通俗来说面向对象 举个例子:就是假如你去洗澡,你可能是这么考虑的,首先进入浴室,然后打开水龙头冲洗,最后用浴巾擦干身子,等等一系列过程,叫做面向过程。你用面向过程解决了洗澡这个问题。那么看面向对象是如何思考的,你是一个对象,浴室、水龙头浴巾等也是对象,你首先发送消息给浴室,传递力的参数给浴室的门,OK,门打开了,你然后再传递消息给水龙头,水龙头响应消息,放水,最后你发送消息给浴巾,浴巾调用吸水的方法帮你擦干了身子。那么,你用面向对象的思想完成了洗澡这个问题。

面向对象的一些知识如下:

  • 类(Class)用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 实例化创建一个类的实例,类的具体对象。
  • 对象通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法
  • 继承即一个类似于下一代的关系,继承到了上一代的内容
  • 多态多态指的是一类事物有多种形态,列如动物不止有三种形态:鸡、鸭、牛  

  

从现在许多的案例可以得出:

面向过程的优缺点
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展

面向对象的优缺点
(1)是一种全新的系统分析设计方法(对象、类、结构属性、方法)
(2)适用于各类信息系统的开发。
(3)实现了对客观世界描述到软件结构的直接转换 ,大大减少后续软件开发量。
(4)开发工作的重用性、继承性高,降低重复工作量。
(5)缩短了开发周期。

缺点也很明显。
类和继承等特点使得程序会多很多指针操作来定位函数入口和自身要维护虚拟方法表等额外的工作,程序的处理效率相对要低(换来的是开发效率高)。所以现在单纯的C语言还是大为用武之地的。 如驱动程序开发,或与硬件联系很紧密的东西,单片机等。基本不会用高等的面向对象语言。
但随着科技的进步,CPU和内存的性能也突发猛进。由原来的1核到8核,内存16M和现在的16G,所以程序的效率多多少少会随着硬件的性能变得更好。你可以发现很多大的项目也开始由C转而变成让c++和JAVA等面向对象来写了。
当然核心和底层的东西基本都不会用面向对象语言来写的。

以上是个人理解

从前不会回头,往后不会将就
原文地址:https://www.cnblogs.com/xuedine/p/11586837.html