问:经常听到有人说,计算机语言可以归为面向过程语言和面向对象语言,那么到底什么是面向对象,什么是面向过程呢?

答:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

——摘自《C#编程词典》

面向对象和面向过程有什么区别相关推荐

  1. Java面向对象和面向过程有什么区别?网友:傻傻分不清楚……

    面向对象,Obeject Oriented,是一种编程术语.面向对象是当今软件开发方法的主流方法之一,他是把数据以及对数据的操作放在一起,作为一个相互依存的整体,就是我们所说的对象.对同类对象抽象出其 ...

  2. python面向对象和面向过程介绍与区别

    一.面向对象和面向过程的区别: a.面向过程: 1)根据业务逻辑从上到下写代码 2)开发思路是将数据和函数按照执行的逻辑顺序组织在一起 3)分开考虑数据与函数 定义性文字: 面向对象编程(Object ...

  3. 面向对象和面向过程之间的区别以及优缺点

    面向对象和面向过程详解 说到面向对象,我们都知道C#, Java, C++, python, JS- 都是面向对象的编程语言 说到面向过程,我们都知道C,fortran等都是面向过程的编程语言 今天我 ...

  4. 什么是面向对象编程?面向对象和面向过程有什么区别?

    面向对象 面向对象的程序设计(Object-Oriented Programming,简记为OOP),是当下最流行的程序设计方式之一.在面向对象的设计思想中,将程序视为多个对象共同协作的结果.程序被划 ...

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

    何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中.我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起,最后可能也只会说出一句就是那样啦,你知道啦 ...

  6. 面向对象与面向过程区别

    面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思 ...

  7. python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...

    面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...

  8. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

  9. 面向对象和面向过程的区别个人觉得是目前解释最好的

    面向对象 首先,一言不和先百度,得到如下定义: 一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类.继承,帮助人们实现对现实世界的抽象与数字建模. 我们知道,编写 ...

最新文章

  1. android 拍照空指针,空指针异常时嵌入照片中的Android
  2. poj 2482 Stars in Your Window (线段树扫描线)
  3. Sun x4500作为文件服务器的调优
  4. 阿卡迪亚大学的计算机科学,阿卡迪亚大学计算机科学
  5. 【转】Win8/8.1/Win7小技巧:揪出C盘空间占用的真凶
  6. sed 第n行后加入_【高新课堂】第一百三十九期Liunx运维17个实用技巧
  7. 这才是厉害程序员的标配!
  8. 【模拟遍历】剑指offer:替换空格
  9. Ubuntu18.04图片信息查看器
  10. 基于安卓/android/微信小程序的个人健康打卡系统APP-#计算机毕业设计
  11. CAD 残留文件和注册表如何完全彻底卸载删除干净【转载】
  12. 智能体温计APP方案开发
  13. 【MQTT】SpringBoot集成MQTT
  14. 文档整体缩进html,CSS样式中实现文本缩进的属性是
  15. python打开csv忽略错误_在python中读取错误的格式csv
  16. Composer 的简介、安装及使用
  17. 吴恩达深度学习 | (18) 卷积神经网络专项课程第二周学习笔记
  18. 5. (6.9~7.4)2022年自动化保研信息+分析汇总(夏令营)
  19. html5+css3圆角图文展示卡片层叠滑动切换js特效
  20. 机器学习项目 - 垃圾邮件分类

热门文章

  1. 解决CENTOS下There are no enabled repos.的问题
  2. CAD制图软件中如何设置选择对象的显示效果?
  3. 以太网的分层架构_工业以太网中层次拓扑结构对网络性能的影响
  4. 【分享】 [教学]破解完全入门篇
  5. 【苹果推】imessage群发条件文档(推送证书)开发工具Pushnotification
  6. 阿里菜鸟愚人节最新力作,高大上宠物递送萌翻铲屎官
  7. 不忘初心,勇攀高峰!低代码公司流辰信息紧抓机遇,努力超前冲!
  8. (含Matlab源码)算术编码(arithmetic coding)的underflow问题
  9. 关于K.im的满满干货!
  10. 轻松实现iMessage群发