[18/11/23]面向对象和面向过程
1、区别与联系
面向过程(C和C++): 关心的是“怎么按步骤实现?” 并将步骤对应成方法,一步一步,最终完成。 这个适合简单任务(通俗讲:就是不需要过多协作的情况下)。
如:如何开车? (单人就可以做) 步骤:1. 发动车点火 2. 挂挡 3.踩油门 4. 走 。 不去关心车是怎么造出来的!
面向对象(java): 关心的是 “怎么设计这个事物?” 此时需要多人协作 (单人是无法完成的),是个系统工程。
如:如何造车?(需要多人协作) 想到一辆车由 1. 轮胎 2. 发动机 3. 车壳 4. 座椅 5. 挡风玻璃 等组成。为了协作,可以找轮胎厂完成造轮胎的步骤,发动机厂完成造发动机的步骤。而且各个厂可以同时开工,最终组装,大大提高了效率。
【联系】具体到一个轮胎的制造,在流水线上还是有步骤的,这就是面向过程的思想。
2、总结
(1).面向对象具有三大特征:封装性、继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能。所以面向对象优势更明显。
(2).一个经典的比喻:面向对象是盖浇饭、面向过程是蛋炒饭。盖浇饭的好处就是“菜”、“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。
【扩展】对象发展简史
为了便于协作和管理,我们“将相关数据和相关方法封装到一个独立的实体”,于是“对象”产生了。 比如,我们的一个学生对象:
有属性(静态特征):年龄:18,姓名:高淇,学号:1234
也可以有方法(动态行为):学习,吃饭,考试
1.对象说白了也是一种数据结构(对数据的管理模式),将数据和数据的行为放到了一起。
2.在内存上,对象就是一个内存块,存放了相关的数据集合!
3.对象的本质就一种数据的组织方式!
链接:http://www.sxt.cn/Java_jQuery_in_action/Object_evolutionary_history.html
转载于:https://www.cnblogs.com/ID-qingxin/p/10009317.html
[18/11/23]面向对象和面向过程相关推荐
- 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)
面向对象编程 1 面向对象与面向过程 1.1 java类及类的成员 2 java语言的基本元素:类和对象 2.1 类的语法格式 2.2 创建Java自定义类 2.3 对象的创建及使用 3 类的成员之一 ...
- python中面向对象的缺点_python中的面向对象和面向过程
一.面向对象和面向过程 一.什么是面向过程 核心是过程二字:面向过程是一种流水线的工作流程,是先做什么在做什么 二.什么是面向对象 核心 是对象二字:是一种编程思想,上帝思维,一切皆对象,编程中负责调 ...
- python属于面向对象的还是面向过程的呀-python中的面向对象和面向过程
一.面向对象和面向过程 一.什么是面向过程 核心是过程二字:面向过程是一种流水线的工作流程,是先做什么在做什么 二.什么是面向对象 核心 是对象二字:是一种编程思想,上帝思维,一切皆对象,编程中负责调 ...
- 面向对象与面向过程理解
本文源地址: http://blog.csdn.net/ithzhang/article/details/52983530 http://blog.csdn.net/ithzhang/article/ ...
- 高阶Day1:面向对象,面向过程,类和对象的属性和方法创建
高阶Day1:面向对象,面向过程,类和对象的属性和方法创建 高级编程学习4个内容: 面向对象 MySQL数据库 网络编程 并发编程 面向过程(POP)与面向对象(OOP): 类和对象: 类名的定义: ...
- python面向过程还是面向对象_python是面向对象还是面向过程?
python是面向对象的,第一个公开发行版发行于1991年,Python语法简洁而清晰,具有丰富和强大的类库. Python是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum ...
- python是一门面向过程的语言_python是面向对象还是面向过程?
python是面向对象的,第一个公开发行版发行于1991年,Python语法简洁而清晰,具有丰富和强大的类库. Python是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum ...
- 面向对象与面向过程区别
面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思 ...
- 面向对象编程(一)——面向对象和面向过程
面向对象(Object Oriented),通过对象来封装我们的数据.(组织代码,封装数据) 面向对象和面向过程: 面向过程:procedure oriented programming,POP 面向 ...
最新文章
- 2021年浅谈多任务学习
- WebService教程和分析
- java学习笔记(一) ----java下常用的包功能
- Ajax异步请求-简单模版
- include/caffe/common.cuh(9): error: function atomicAdd(double *, double) has already been defined
- Django入门(二) 理解Django生命流程周期
- 路由器和交换机分别起什么作用,它们之间有什么区别?
- HBase数据存储格式
- 如何将maven项目打包成可执行的jar
- linux ftp远程更新,用ftp远程安装linux
- C#通用验证类:邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP
- 可视化图布局算法简介
- 机场也应该取个好听的名
- CISCO路由器的备份与还原(2)
- jenkins教程菜鸟_Jenkins教程:在Windows平台安装Jenkins
- python中的f函数_05-python中函数的使用
- Win8+CentOS7双系统安装
- OneNote 深度评测:使用资源、插件、模版
- 【模拟电子技术基础】本章讨论问题答案2
- 2022年最受欢迎的十大狗狗品种排行榜:拉布拉多猎犬第一 | 美通社头条
热门文章
- 2019.01.24 NOIP训练 旅行(轮廓线dp)
- 苹果机的时间格式转换为时间搓
- webService(简单小demo)
- java APIs for database -------- JDBC (1)connection
- leetcode Add Digits
- $_FILES['userfile']['error'] 错误码
- 从零开始学C++之运算符重载(三):完善String类([]、 +、 += 运算符重载)、和运算符重载...
- YUI3学习笔记 ( 8 )
- java分层窗格_java 简洁的分层实现
- 学java的就业方向_学习Java的就业前景怎么样