要讲区别,首先我们得先来弄弄清楚什么是面向过程,什么是面向对象。

面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

比如把大象放进冰箱,第一步需要先打开冰箱,第二步把大象放进去,第三步把冰箱关上,这样就完成了把大象放进冰箱这件事情。这就是面向过程。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

还是把大象放进冰箱,我们得先有个冰箱,有个大象,冰箱可以开关,大象能够移动,这个时候我们再来做把大象放进冰箱这件事情。

这样看起来好像没什么区别呀,反倒是面向过程来的有条理一些,多方便呀。这只是再这件事情上显得简单而已,如果老板不是让你去放大象,而是让你去造火箭呢?造火箭可是个大工程,怎么造,从哪造,难道我们也面向过程那样一步步列出步骤吗?

因此,对于规模较小的问题,面向过程比较简单,而面向对象更加适用于解决规模较大的问题。

面向对象的程序单位是类,面向过程的程序单位是函数(方法)

细谈面向对象

面对对象编程的本质:以类的方式组织代码,以对象的方式组织数据

面向对象程序设计(OOP)需要清楚对象的三个主要特性:

1、对象的行为-----可以对对象施加哪些操作,或可以对对象施加哪些方法?

2、对象的状态-----当施加那些方法时,对象如何响应?

3、对象标识--------如何辨别具有相同行为与状态的不同对象?

封装、继承和多态是面向对象的三个基本特征。

封装:将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式,是一个黑盒子。

(对象中的数据称为实例域,操作数据的行为称为方法。)

继承:通过扩展一个类来建立另外一个类的过程。大白话就是,子类继承父类后,直接获得父类的属性和方法

多态:子类对象可以直接赋给父类对象,运行时依然表现出子类的行为特征

什么是面向对象、面向过程与面向对象的区别相关推荐

  1. java面向过程和面向对象

    面向过程(Procedure Oriented):说的是功能的行为 面向对象(Object Oriented,简称OO):说的是功能的对象 面向过程理解: 当学习java的时候先了解java语言优良的 ...

  2. java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法

    面向过程和面向对象 解决简单问题可以使用面向过程 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程. 面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向 ...

  3. 面向过程与面向对象编程的区别和优缺点

    ■面向过程与面向对象编程的区别 转载至:https://www.cnblogs.com/strivers/p/6681876.html 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步 ...

  4. 面向过程和面向对象编程的优缺点

    [1]面向过程和面向对象的比较 网上发现了一篇文章,说了一下OP与OO的不同,并且打了一个比喻,通俗易懂. 有人这么形容OP和OO的不同:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的 ...

  5. (转)函数作用域,匿名函数,函数式编程,面向过程,面向对象

    函数作用域 ? 1 2 3 4 5 6 7 8 9 10 def first():     name = 'Wangben'     def second():         name = 'Men ...

  6. 面向过程和面向对象的编程思想 复习原型 构造函数和实例对象和原型对象之间的关系

    体会面向过程和面向对象的编程思想 <!DOCTYPE html> <html lang="en"> <head><meta charset ...

  7. 架构师之路(1)---面向过程和面向对象

    1.引言    机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训 ...

  8. 面向过程 VS 面向对象

    面向过程(Process Oriented)这个词是在面向对象(Object Oriented)出现之后为与之相对而提出的.其实它在以前基本被叫做"结构化编程". 早期的程序设计, ...

  9. 面向过程和面向对象的联系和区别

    以C语言和C++为例. C语言是面向过程的,封装单元是函数.函数里面按照逻辑流程一步一步实现就行了,这符合我们现实生活中解决问题时的思考过程. C++是面向对象的,封装单元是类.首先,面向对象是为了提 ...

  10. java面向过程编程怎么写_从面向过程到面向对象,我的编程之路

    也许现在新一代的程序员一开始涉足的就是c++,C#,Java这类面向对象的语言,如果这样,这篇文章可能得不到他们的认同. 这里,我只想写写我从面向过程到面向对象开发成长中的一些感想而已. 我最初学习的 ...

最新文章

  1. win32ctypes.pywin32.pywintypes.error: (2, ‘LoadLibraryEx‘, ‘系统找不到指定的文件。‘)
  2. 鹅厂AI科学家,偷偷把无人摩托写进了年终总结
  3. 某书2018面试题之最长对称子串
  4. python操作excel-Python对Excel的读写等操作(转)
  5. 点按钮ajax get方法修改0或1状态封装成函数
  6. 字符集与编码(四)——Unicode
  7. 【过程记录】aop学习·实现动态代理的jdk方法和cglib方法和使用实例
  8. 信管家源代码c语言,用队列实现按层次创建二叉树的源代码,最好是C语言
  9. 【转】VS编译环境命令窗口中的命令
  10. 关于she'll脚本中echo -e使用sh命令执会显示参数-e-的问题
  11. python找图片不同_用openCV和Python 实现图片对比,并标识出不同点的方式
  12. python数据符号函数等一切皆对象_第一章:Python高级编程-Python一切皆对象
  13. 营口(熊岳)温泉旅游归来!
  14. 【前端 · 面试 】HTTP 总结(一)—— HTTP 概述
  15. linux下如何关闭防火墙、查看当前的状态、开放端口
  16. Wordpress中Md文章添加图片点击放大效果
  17. 若依项目环境搭建及使用
  18. 单片机应用系统设计技术——基于51单片机的火灾温度烟雾报警器设计
  19. centos审计服务audit导致使centos服务器不能登录,部署的应用不能运行和访问。
  20. 华东、华北、华南的城市

热门文章

  1. 《惢客创业日记》2018.10.12(周五) 声音主播背后的“天龙八步”(一)
  2. CVPR2022新作:P图不会,深度学习来帮忙,基于GAN逆映射的图像编辑(中)
  3. 使用图新地球无法加载谷歌地球的完美解决方法(附软件下载)
  4. 网页中插入Flash动画的代码
  5. 大一计算机导论教程总结,计算机导论实验教程--详细介绍
  6. 计算直线交点与夹角方法
  7. (转)jQuery Validation Plugin客户端表单证验插件
  8. C++ 读写二进制文件
  9. 北大联合腾讯发布泛在操作系统研究报告:泛在操作系统成产业趋势,研究与实践进入加速期...
  10. frozenui 移动端 搜索框