面向对象编程与面向过程变成之间的比较

参考地址:http://mp.weixin.qq.com/s/ZZMA8mBoMvq8IRiX7deQbA

以一个例子(如打扫房间)来说明面向过程和面向对象在程序流程上的不同之处。

面向过程就是将编程当成是做一件事,要按步骤完成,每一步就是一个过程。比如某个人要打扫房间这件事,需要先取扫帚,然后仔仔细细打扫每一处,最后将扫帚放回原地。

代码实现过程:

输出结果:

面向对象就是将编程当成是一个事物(相当于一个整体的东西),对外界来说,事物是直接使用的,不用去管他内部的情况。而编程就是设置事物能够做什么事。其实有点像是将面向过程给放到事物内部了。仍然举打扫房间为例,其实面向过程就好像自己去打扫房间,所以要讲究步骤,而面向对象就好像你只要通知扫地机器人打扫房间,即发一个消息就可以了,至于机器人怎样打扫,是不用知道的。

代码实现过程

运行结果:

只需自己发出扫地这个消息后,过了一会儿后,(1,2,3)扫地机器人将向您汇报结果。

面向过程:你拿扫帚去打扫房间,主体是你,取扫帚,大扫地,一系列动作都需要你自己完成;

面向对象:把扫地机器人当成主体对象,相当于个活物,机器人主动去打扫卫生,至于如何打扫完,跟你没关系。

因此,在菜鸟分析看来,面向过程,是人在干活。面向对象,相当于人创造机器人去干活。

站在计算机程序角度来讲,面向过程和面向对象的本质理解为:

  • 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度(自我以为面向过程就是我们平时的自顶向下的编程方式)。
  • 而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递(把程序封装集合到一起)。

总的来说:面向对象是将事物高度抽象化,面向对象必须先建立抽象模型,之后直接使用模型就行了;面向过程是一种自顶向下的编程

原文地址:https://www.cnblogs.com/fireporsche/p/8531591.html

时间: 2024-11-05 21:42:13

面向对象编程与面向过程变成之间的比较的相关文章

面向对象编程和面向过程的区别

面向对象和面向过程的区别,实在是难用一两句话说明白. 面向过程是一种直接的编程方法,它是按照编程语言的思路考虑问题.尤其是想C语言这种过程式语言,它就是通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序.不同的语言解决同一个问题的过程是不一样的. 面向对象是一种抽象度更高的编程方法.它把眼光集中在了要解决问题本身而不是语言上.它的目标是使模块的抽象度更高,可复用性更好.面向对象的目的就是可复用. 举个例子,比如我们要写一个计算器程序.这个计算机目前只要求有加减乘除四种运算. 用面

面向对象的编程和面向过程的编程有什么区别

C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数.程序运行的顺序都是程序员决定好了的.它是我学的第一种程序语言. C++是面向对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,根据需要,执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的那些语句),类就是对象,所以我们称之为面向对象程序设计. 不同点:1.编程模型 所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕&

[python]两种编程思维--面向过程和面向对象

例如:eg:炒一份西红柿鸡蛋 一.面向过程 面向过程的编程思维,如下 二.面向对象 制作一台炒菜机器人,然后告诉机器人做一道西红柿炒鸡蛋.在这里,我们直接面对的是机器人,而非炒菜的过程,所以这里机器人就是我们面对的对象,这种解决问题的方法就叫做[面向对象]编程 三.总结 [面向过程]编程主要用到的是“函数”知识,将每个过程步骤打包成函数,再依次调用,看重的是解决问题的过程 [面向对象]编程主要用到的是“类和对象”知识,看重的是解决问题的方法 原文地址:https://www.cnblogs.co

编程中面向过程与面向对象

面向过程:C语言你要吃饭出门 找饭店 点餐 吃饭 逻辑性强 ,从上往下执行的,顺序不能轻易更改 每一步都需要自己实现面向对象Java ,C++ ,Python拿手机打开app 点餐 付款 等 吃饭可以借助于第三方工具来完成自己的事情 继承每种语言都有自己使用的场景,使用率比较高的 java c python 原文地址:https://blog.51cto.com/14087650/2446517

面向对象程序设计与面向过程程序设计解析

昨天晚上在知乎看到这个问题,一时还真说不太清.之前一直用JAVA和Android做开发,近期在维护一个老的项目,是用VB开发的,代码超过十个年头了,接触了一段时间.对面向过程和面向对象都有所涉及,在这里这个小结(有些是在网上收集的) 自己的理解: 面向过程是一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,就是分析出解决这个问题所须要的步骤,然后用函数把这些步骤一步一步实现,实现的时候一个一个依次调用就能够了 面向对象是一种以事物为中心的编程思想,以数据(属性)为导向,将具有同样

面向对象编程、面向组件编程、面向方面编程、面向服务编程

1.什么是面向对象编程(Object-Oriented Programming)? 面向对象编程 (Object-Oriented Programming)简称OOP技术,是开发计算机应用程序的一种新方法.新思想.过去的面向过程编程常常会导致所有的代码都包含在几个模块中,使程 序难以阅读和维护.在做一些修改时常常牵一动百,使以后的开发和维护难以为继.而使用OOP技术,常常要使用许多代码模块,每个模块都只提供特定的功能, 它们是彼此独立的,这样就增大了代码重用的几率,更加有利于软件的开发.维护和升

面向接口设计和编程——(面向对象、面向接口、面向过程、面向实现) --转载

引言--面向接口所处的设计模式中的位置. 其实,我认为Java/C#比C++高级的其中一个原因是,它对面向接口编程的支持.不要误解,并不是说C++不支持面向接口编程,而是说C++的语法中没有这种天然的机制. 面向对象之于面向过程,面向接口之于面向实现.但基本上,面向接口和面向实现都基于面向对象的模式,也就是说面向接口并不能称为比面向对象的更高的一种编程模式.而是在面向对象中大的背景下的一种更加合理的软件设计模式,它增强了类与类之间,模块与模块的之间的低耦合性,是软件系统更容易维护.扩展. 不管是

编程思想:面向对象和面向过程

感觉写的不够深入,不过基本可行,转载自:http://www.cnblogs.com/BeiGuo-FengGuang/p/5935763.html 何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中.我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起,最后可能也只会说出一句就是那样啦,你知道啦.而这种茫然,其实就是对这两大编程思想的迷糊之处.本文通过学生到校报道注册的实例,阐述了面向过程和面向对象两大思想.希望能对你的学习和工作有所帮助.

面向对象和面向过程的编程方式的理解

面向对象和面向过程的区别? 如果说面向对象和面向过程的具体区别,最深入的地方应该是去看设计模式,推荐大话设计模式那本书,讲的比较好.本人只不过简单叙述下,重点是如何进行面向对象和面向过程的编程,只有会编程了,才能真正懂得面向对象和面向过程的区别.否则都是纸上谈兵. 面向过程:是以计算机线性思维的方式进行编程.一步一个脚印的执行.本身也没有问题,但是如果遇到需求多变的情况,或者功能的添加和删除,将极其影响原来的程序代码,必须要重写或者修改,或者重新组织原来的代码. 面向对象:在对需求多变的时候,不