浅谈面向对象与面向过程

前言:刚接触C++第一时间,都会经常听到这样一话:C语言面向过程,C++面向对象。在老师模拟面试时,问道你对面向对象与面向过程的认识时,我有点懵答的不是很完整,刚好C++开篇写一下。

一、面向对象与面向过程的区别(常考)

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

其划分思想也不相同,面向过程是按步骤分析问题,而面向对象是按功能来划分问题
栗子一:
五子棋问题,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

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

大象放进冰箱里问题:
面向过程 :1把冰箱门打开 2把大象放进去 3把冰箱门关上
面对对象: 有2个对象 分别是1大象 2冰箱
大象的对象里有可以放到某物体里的方法,而冰箱的对象里有把冰箱们打开,把冰箱门关上,把某物体放进来的方法.这样我们再把大象放到冰箱里就是使用2个对象的方法来实现的。冰箱对象负责开关,大象对象负责进入。
总结:面向对象就是高度实物抽象化、面向过程就是自顶向下的编程!
面向对象和面向过程的优缺点:
面向过程

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

面向对象

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低

【c++开篇】浅谈面向对象与面向过程(举例说明)相关推荐

  1. 浅谈面向对象和面向过程

    1.面向对象   面向过程和面向对象都是对软件分析.设计和开发的一种思想,它指导着人们以不同的方式去分析.设计和开发软件.早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来 ...

  2. 详解:面向对象与面向过程的比较 类之间的关系:泛化、实现、依赖、关联、聚合、组合

    文章目录 1.面向对象程序设计概述 1.1 面向对象程序设计 1.2 传统结构化程序设计 1.3 面向对象与面向过程举例 2.类之间的关系 2.1 泛化/继承 2.2 实现 2.3 依赖 2.4 关联 ...

  3. 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)

    面向对象编程 1 面向对象与面向过程 1.1 java类及类的成员 2 java语言的基本元素:类和对象 2.1 类的语法格式 2.2 创建Java自定义类 2.3 对象的创建及使用 3 类的成员之一 ...

  4. 通俗理解面向对象和面向过程+编程思想

    上午单位的C++大佬给我们分享了一些编程思想,开始介绍了面向对象和面向过程 面向过程是什么,就是对事件的过程进行编程,我们已知事件的发展过程,我们根据过程发展的节点去编程.整个编程是过程驱动,开始,然 ...

  5. 什么是面向对象、面向过程与面向对象的区别

    要讲区别,首先我们得先来弄弄清楚什么是面向过程,什么是面向对象. 面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. 比如把大象放进冰箱,第一 ...

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

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

  7. 面向对象编程(一)——面向对象和面向过程

    面向对象(Object Oriented),通过对象来封装我们的数据.(组织代码,封装数据) 面向对象和面向过程: 面向过程:procedure oriented programming,POP 面向 ...

  8. 浅谈CMMI几个过程概念流程管理 (转)

    浅谈CMMI几个过程概念流程管理 CMMI(Capability Maturity Model Integration)能力成熟度模型集成,正如它的名字一样,它是一个模型.个人觉得它更是一种概念.它带 ...

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

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

最新文章

  1. 讯飞语音语音听写,设置识别语言
  2. 一文读懂Serverless,配置化思想复用到平台系统中
  3. “AlphaGo之父”获最新一届ACM计算奖
  4. 【Python】统计字符串里某个字符或子字符串出现的次数
  5. jQuery Object 和 HTML Element间的转换
  6. HTTP与HTTPS的安全性讨论
  7. 今天,给我妈打电话聊了我爸
  8. linux主机熵值过小,tomcat在linux启动应用慢解决方式
  9. 潭州课堂25班:Ph201805201 django框架 第五课 自定义简单标签,包含标签,模型类创建,梳理类创建 (课堂笔记)...
  10. 记录一下2019年-2020年期间的学习、工作经历
  11. nofollow标签_网站Nofollow标签的应用场景
  12. php +html5 websocket 聊天室
  13. 微信小程序服务器api接口的路径,微信小程序-封装请求基准路径、接口API 和使用...
  14. 【NOIP2014模拟8.25】设备塔
  15. BackTrack5 下破解无线
  16. 第一易,唯一难,为什么它是ofo、天学网的不二选择
  17. eeglab和matlab,EEGLAB for Matlab(一)--初识EEGLAB
  18. 将ip电话注册到服务器上,华为IP电话配置步骤.doc
  19. Word2010专项试题(1)
  20. 深入浅出java web_深入浅出javaWeb实战第1讲Web的概念及其演变(上)

热门文章

  1. 新增公告提示功能,支持用户异地登录提醒和授权过期通知,JumpServer堡垒机v2.15.0发布
  2. 小米手环7Pro和OPPO手环2 哪个好
  3. 浏览器内核-Webkit
  4. 如何在Apple TV上镜像Mac,iPhone或iPad屏幕
  5. 经常坐公交的福音,精准公交小程序
  6. 安装centos7(从u盘启动)报错:/dev/root does not exist 问题处理过程
  7. 【Git学习】 如何通过git log命令来打印出在两个commit之间的所有不同的author提交的记录
  8. 解决 mac 账户从管理员变成了普通用户,不能解锁用户与群组
  9. 杭州电子科技大学信息工程学院,计算机本科生考研情况很弱?
  10. java/android 设计模式学习笔记(1)---单例模式