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

一.区别

  • 面向过程强调的是功能行为,以函数为最小单位,考虑怎么做。
  • 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

面向过程的分析主体为解决问题的行为步骤,面向对象的分析主体为问题中的行动执行者被执行者
换句话说,面向过程以问题中的动词为切入点。面向对象以问题的主语宾语为切入点。
(可能这句话不大恰当)

接下来,以一个经典的例子进行说明。

例:人把大象关进冰箱。

  1. 面向过程的分析过程:
    第一步:把冰箱门打开;
    第二步:将大象放进冰箱;
    第三步:把冰箱门关闭;
  2. 面向对象的分析过程:
    第一步:分析动作是由那些实体发出的;
    //人 ,冰箱,大象
    第二步:定义主体,为其增加属性和功能;
    //人,人需要有打开关闭冰箱,及将大象放入冰箱的功能;
    //冰箱,冰箱需要具有能开门和关门的属性;
    //大象,大象需要具有能够进入冰箱的功能

二.联系

  • 二者均可实现代码重用和模块化编程;但面向过程简单直接,容易理解(直男式解决方案),面向对象更为复杂,模块化程度更高。从开发角度来看,面向对象比面向过程复杂,从维护和扩展功能的角度上来看,面向对象更容易操作。

面向对象与面向过程的区别与联系相关推荐

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

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

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

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

  3. C++ 面向对象与面向过程的区别与联系

    转自:https://blog.csdn.net/jerry11112/article/details/79027834 前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是 ...

  4. java面向对象与面向过程的区别

    面向对象与面向过程的区别 面向过程与面向对象,只是一种思维方式的划分   面向过程 面向对象 区别 以分步骤的方式解决问题. 用方法组织代码. 以分类的方式解决问题. 用类组织代码. 共同点 细节上用 ...

  5. Java面向对象和面向过程的区别

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

  6. 什么是面向对象?面向对象的特征?面向对象和面向过程的区别?

    什么是面向对象? 面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP), Java 是一个支持并发.基于类和面向对象的计算机编程语言. 面向对象软件开发具有以下优点: 代码 ...

  7. 面向对象和面向过程的区别及面试问答

    面向对象和面向过程的区别 面向过程 :面向过程性能比面向对象高. 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机.嵌入式开发.Linux/Unix 等 ...

  8. 面向对象和面向过程的区别以及封装继承多态的优缺点

    面向对象和面向过程的区别: 1.思路不同 2.特点不同 3.优势不同. 面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了:而面向对象是将构成问题的事物,分解 ...

  9. 编程思想:面向对象和面向过程的区别与联系

    前言 何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中.我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起.而这种茫然,其实就是对这两大编程思想 ...

最新文章

  1. java new string 图_Java中String直接赋字符串和new String的一些问题
  2. Android开发之自定义Spinner样式的效果实现(源代码实现)
  3. 面试:如何从大量的 URL 中找出相同的 URL?
  4. 【MM配置】Pricing 采购定价过程总览
  5. QUIC 之类的可靠传输协议
  6. qpython numpy_Python-Numpy全面精简教程
  7. 大型互联网公司分布式ID方案总结
  8. 前端学习(2550):事件指令解析
  9. dts数据库迁移工具_干货分享丨DM8 DTS工具使用小技巧
  10. jQuery实现一个图片左右滚动
  11. Oracle ERP简介
  12. linux 查看libevent 安装目录,关于Linux下libevent库的基础安装和使用
  13. mysql根据不同的值查询不同的字段_sql根据一个字段不同值查询不同表中的一个字段...
  14. unity3D 移动开发代码优化
  15. LR11中将IE9降级为IE8
  16. android打印机驱动4521,三星打印机驱动官方下载
  17. 你学习了Python,再看此文,这是一篇可以给你带来外快的文章,不夸张
  18. java int和Integer的区别
  19. springboot 简单集成mybatis 及所遇到问题解决方法
  20. 超越YOLOv4-tiny!YOLObile:移动设备上的实时目标检测 [左侧有码]

热门文章

  1. 计算机辅助设计技术领域的应用,关于计算机辅助设计技术在规划设计中的应用...
  2. V神最新演讲:万字长文透露以太坊20重大升级!
  3. hdu 6149 Valley Numer II(状压+ 枚举)
  4. CAD和GIS绘制图形分析
  5. sketchup 图片转模型_SketchUp插件:位图转模型使用技巧
  6. LeetCode 319 灯泡开关[数学] HERODING的LeetCode之路
  7. 同步BUCK死区时间产生电路原理及仿真
  8. 2021年我的21个感悟(1/3)
  9. 第一个报表(简单滴)
  10. 区块链钱包开发(Android篇)