面向对象与面向过程的区别
2016-03-12 10:55
302 查看
对于该问题,网上也有不同说法,感觉有点乱,下面说一下我的看法:
主要是从面向对象的三个特征入手:
1.封装:是指将客观事物的属性和操作方法封装成类,每个类对自身的数据和方法实行保护。
2.继承:继承是一种联结类的层次模型, 并且允许和鼓励类的重用。
3.多态:指允许不同类的对象对同一消息作出相应。
显然这三个特征都是面向过程所不具备的,面向过程是一种以事件为中心的开发方式,是一个自顶向下、逐步求精的过程。如五步棋:先干什么,然后干什么,再干什么;但是面向对象的思维是:首先谁干什么,然后谁去干什么,再然后谁去干什么;可以看出面向对象强调的是对象而面向过程并没有出现“谁”的概念;(注意,个人认为我们不可能完全脱离面向过程,因为一些函数体里面的每一个小步骤还是得面向过程的,面向对象是一个宏观的概念,面向过程则是一个微观的概念);
主要是从面向对象的三个特征入手:
1.封装:是指将客观事物的属性和操作方法封装成类,每个类对自身的数据和方法实行保护。
2.继承:继承是一种联结类的层次模型, 并且允许和鼓励类的重用。
3.多态:指允许不同类的对象对同一消息作出相应。
显然这三个特征都是面向过程所不具备的,面向过程是一种以事件为中心的开发方式,是一个自顶向下、逐步求精的过程。如五步棋:先干什么,然后干什么,再干什么;但是面向对象的思维是:首先谁干什么,然后谁去干什么,再然后谁去干什么;可以看出面向对象强调的是对象而面向过程并没有出现“谁”的概念;(注意,个人认为我们不可能完全脱离面向过程,因为一些函数体里面的每一个小步骤还是得面向过程的,面向对象是一个宏观的概念,面向过程则是一个微观的概念);
相关文章推荐
- 多线程(三)
- C++中的main函数
- Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统
- linux 设置用户ID、设置组ID
- Tcl internal variables
- Android开发之创建App Widget和更新Widget内容
- XMAPP,非本地访问phpmyadmin出现Access forbidden的问题
- JavaScript进阶之路——认识和使用Promise,重构你的Js代码
- Shadow mapping
- 学习进度条
- 有趣的玩意儿
- 修改avd路径
- C语言-数组
- QML中使用canvas简单绘图
- 4-1、Spark简介
- docker
- SQL游标的使用
- 生命的真谛?
- gearmand的安装
- 第二周的学习进度情况