面向对象与面向过程的区别与联系
面向对象与面向过程的区别与联系
一.区别
- 面向过程强调的是功能行为,以函数为最小单位,考虑怎么做。
- 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
面向过程的分析主体为解决问题的行为步骤,面向对象的分析主体为问题中的行动执行者和被执行者。
换句话说,面向过程以问题中的动词为切入点。面向对象以问题的主语和宾语为切入点。
(可能这句话不大恰当)
接下来,以一个经典的例子进行说明。
例:人把大象关进冰箱。
- 面向过程的分析过程:
第一步:把冰箱门打开;
第二步:将大象放进冰箱;
第三步:把冰箱门关闭; - 面向对象的分析过程:
第一步:分析动作是由那些实体发出的;
//人 ,冰箱,大象
第二步:定义主体,为其增加属性和功能;
//人,人需要有打开关闭冰箱,及将大象放入冰箱的功能;
//冰箱,冰箱需要具有能开门和关门的属性;
//大象,大象需要具有能够进入冰箱的功能
二.联系
- 二者均可实现代码重用和模块化编程;但面向过程简单直接,容易理解(直男式解决方案),面向对象更为复杂,模块化程度更高。从开发角度来看,面向对象比面向过程复杂,从维护和扩展功能的角度上来看,面向对象更容易操作。
面向对象与面向过程的区别与联系相关推荐
- python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...
面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...
- python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...
P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...
- C++ 面向对象与面向过程的区别与联系
转自:https://blog.csdn.net/jerry11112/article/details/79027834 前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是 ...
- java面向对象与面向过程的区别
面向对象与面向过程的区别 面向过程与面向对象,只是一种思维方式的划分 面向过程 面向对象 区别 以分步骤的方式解决问题. 用方法组织代码. 以分类的方式解决问题. 用类组织代码. 共同点 细节上用 ...
- Java面向对象和面向过程的区别
面向对象,Obeject Oriented,是一种编程术语.面向对象是当今软件开发方法的主流方法之一,他是把数据以及对数据的操作放在一起,作为一个相互依存的整体,就是我们所说的对象.对同类对象抽象出其 ...
- 什么是面向对象?面向对象的特征?面向对象和面向过程的区别?
什么是面向对象? 面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP), Java 是一个支持并发.基于类和面向对象的计算机编程语言. 面向对象软件开发具有以下优点: 代码 ...
- 面向对象和面向过程的区别及面试问答
面向对象和面向过程的区别 面向过程 :面向过程性能比面向对象高. 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机.嵌入式开发.Linux/Unix 等 ...
- 面向对象和面向过程的区别以及封装继承多态的优缺点
面向对象和面向过程的区别: 1.思路不同 2.特点不同 3.优势不同. 面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了:而面向对象是将构成问题的事物,分解 ...
- 编程思想:面向对象和面向过程的区别与联系
前言 何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中.我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起.而这种茫然,其实就是对这两大编程思想 ...
最新文章
- java new string 图_Java中String直接赋字符串和new String的一些问题
- Android开发之自定义Spinner样式的效果实现(源代码实现)
- 面试:如何从大量的 URL 中找出相同的 URL?
- 【MM配置】Pricing 采购定价过程总览
- QUIC 之类的可靠传输协议
- qpython numpy_Python-Numpy全面精简教程
- 大型互联网公司分布式ID方案总结
- 前端学习(2550):事件指令解析
- dts数据库迁移工具_干货分享丨DM8 DTS工具使用小技巧
- jQuery实现一个图片左右滚动
- Oracle ERP简介
- linux 查看libevent 安装目录,关于Linux下libevent库的基础安装和使用
- mysql根据不同的值查询不同的字段_sql根据一个字段不同值查询不同表中的一个字段...
- unity3D 移动开发代码优化
- LR11中将IE9降级为IE8
- android打印机驱动4521,三星打印机驱动官方下载
- 你学习了Python,再看此文,这是一篇可以给你带来外快的文章,不夸张
- java int和Integer的区别
- springboot 简单集成mybatis 及所遇到问题解决方法
- 超越YOLOv4-tiny!YOLObile:移动设备上的实时目标检测 [左侧有码]
热门文章
- 计算机辅助设计技术领域的应用,关于计算机辅助设计技术在规划设计中的应用...
- V神最新演讲:万字长文透露以太坊20重大升级!
- hdu 6149 Valley Numer II(状压+ 枚举)
- CAD和GIS绘制图形分析
- sketchup 图片转模型_SketchUp插件:位图转模型使用技巧
- LeetCode 319 灯泡开关[数学] HERODING的LeetCode之路
- 同步BUCK死区时间产生电路原理及仿真
- 2021年我的21个感悟(1/3)
- 第一个报表(简单滴)
- 区块链钱包开发(Android篇)