OC - 1.面向过程和面向对象的思想对比
一、面向过程
1> 思想
- 面向过程是一种以过程为中心的最基础编程思想,不支持面向对象的特性。
- 面向过程是一种模块化程序设计方法
2> 开发方法
- 面向过程的开发方法是以过程(也可以说是模块)为研究核心 ,将不同的过程设计成不同的函数,然后按一定的流程调用即可。
3> 优缺点
优点
① 能够编写高效的代码
② 在小型的流程清晰的程序设计方面有一定的优势缺点
① 编写的代码可重用性低,开发效率较低
② 难以或无法完成流程复杂的程序设计任务
二、面向对象
1> 思想
概念
① 对象:人们进行研究的一切事物,包括具体事物和抽象事物。具有一
定的状态和行为,封装了数据和操作。
② 类:具有相同或相似属性对象的抽象。抽象了对象的状态和行为,形
成类的属性和操作。具有分类和组装两种不同的结构。
③ 消息:对象之间进行通信的机制。特征
① 唯一性:通过唯一的标示来标记不同的对象,标示在对象生命周期内
不能改变。
② 分类性:具有一致数据结构和行为的对象抽象成的类
③ 继承性:子类主动共享父类数据结构和方法的机制。包括单继承和多
继承(oc语言是单继承)。是面向对象开发中最重要的特征。
④ 多态性:不同的对象调用相同的操作或函数会产生不同的结果主要思想
① 万物皆对象的思想,更加符合人们认识世界的过程
③ 主要考虑的是解决问题所涉及的对象,将对象的属性和相关操作封装
在一起,通过消息机制来实现对象之间的通信。
2> 开发方法
分析需求
建立对象模型
① 确定类
② 准备数据字典
③ 确定关联
④ 确定属性
⑤ 使用继承来细化对象
⑥ 完善对象模型建立动态模型
① 准备脚本,脚本又叫宏或批处理文件
② 确定事件
③ 准备事件跟踪表
④ 构造状态图功能建模
① 确定输入输出值
② 建立数据流图确定类的操作
3> 优缺点
优点
① 比面向过程思想的代码重用率高
② 比面向过程思想的结构清晰
③ 实现了封装,降低了外部操作内部数据的风险
④ 包含了面向过程思想缺点
① 由于实现了封装,操作内部数据将增加工作量
② 由于进行对象及与对象相关的抽象, 会消耗相应的时间和空间代价,
性能较低
OC - 1.面向过程和面向对象的思想对比的更多相关文章
- 面向过程 vs 面向对象
从网上摘录了一些面向过程vs.面向对象的分析,先简单记录如下,稍后会继续整理. 为什么会出现面向对象分析方法? 因为现实世界太复杂多变,面向过程的分析方法无法实现. 面向过程 采用面向过程必须了解整个 ...
- JS是面向过程、面向对象还是基于对象?面向对象的代码体现
一.问题 javascript是面向对象的,还是面向过程的?基于对象是什么意思? 对象: 指的是对某一类事物进行抽象,抽象出这一类事物共同的特征以及行为(也就是属性和方法),那些拥有这一共同属性和方法 ...
- C语言学习系列(二)面向过程和面向对象
一.基本定义 (一).面向过程(procedure oriented programming POP) 面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可. ...
- PHP mysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理
相关文章:PHP的mysql扩展整理,操作数据库的实现过程分析 PHP PDO扩展整理,包括环境配置\基本增删改查\事务\预处理 介绍 mysqli是PHP程序与mysql数据库进行数据交互的桥梁, ...
- 从面向过程到面向对象再到MVC
/* * * title: 从面向过程到面向对象再到MVC * author: tanghao * date: 2020.9.30 * version: 1.0 * */ 前言 本文档通过一个显示20 ...
- 【JAVA】笔记(2)---面向过程与面向对象;类,对象;实例变量,引用;构造方法;
面向过程与面向对象: 1.面向过程思想的典型栗子是C语言,C语言实现一个程序的流程是:在主函数中一步一步地罗列代码(定义子函数来罗列也是一样的道理),以此来实现我们想要的效果: 2.面向对象思想的典型 ...
- python 面向过程和面向对象比较
面向过程 VS 面向对象 面向过程的程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式. 优点是:复杂度 ...
- C++笔记005:用面向过程和面向对象方法求解圆形面积
原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 结束了第一个hello world程序后,我们来用面向过程和面向对象两个方法来求解圆的面积这个问题,以能够更清晰的体会面向对象和面向过程. ...
- PHP面向过程和面向对象
php程序编写分为面向过程和面向对象.两者在功能实现上没有区别,但是在代码编写上区别很大,面向过程的代码很乱,不易管理,而面向对象把常用的功能封装为一个类,这样代码清楚多了. 下面举个小例子说明一下: ...
随机推荐
- mvc 4 Razor (@html.xx)语法大全以及应用
Razor语法大全 @Html ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction差别 对这 ...
- 如何在Azure上创建和部署云服务
Azure 管理门户提供两种方法可用来创建和部署一个云服务:快速创建和自定义创建. 本主题说明如何使用快速创建方法来创建新的云服务,然后使用上传来上载和部署一套在 Azure 的云服务.当您使用此方法 ...
- poj 2942--Knights of the Round Table (点的双连通分量)
做这题简直是一种折磨... 有n个骑士,骑士之间相互憎恨.给出骑士的相互憎恨的关系. 骑士要去开会,围成一圈坐,相互憎恨的骑士不能相邻.开会骑士的个数不能小于三个人.求有多少个骑士不能开会. 注意:会 ...
- 神奇的问题记录【SqlDataAdapter Fill DataSet】
今天发现程序中有一张报表查询速度很慢[全条件要二分钟左右],查找相关原因,准备进行优化处理.注:报表调用存储过程,存储过程返回两个table就有以下神奇的故事: 直接将SQL语句在SSMS中执行发现全 ...
- bzoj1095: [ZJOI2007]Hide 捉迷藏 线段树维护括号序列 点分治 链分治
这题真是十分难写啊 不管是点分治还是括号序列都有一堆细节.. 点分治:时空复杂度$O(n\log^2n)$,常数巨大 主要就是3个堆的初始状态 C堆:每个节点一个,为子树中的点到它父亲的距离的堆. B ...
- 【面试虐菜】—— Oracle知识整理《收获,不止Oracle》
普通堆表不足之处: 表更新有日志开销 表删除有瑕疵 表记录太大检索较慢 索引回表读开销很大 有序插入难有序读出 DELETE产生的undo最多,redo也最 ...
- SQL rank() 用法
WITH vep AS ( SELECT package.OrderCode , RANK() OVER ( PARTITION BY package.OrderCode ORDER BY packa ...
- HashMap早知道
第一眼hashmap始终Collection那个地点 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGxmMTIzMzIx/font/5a6L5L2T/f ...
- Apache的prefork模式和worker模式(转)
prefork模式这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作方式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程兼容性问题的系统.它是要求将每个请求 ...
- Android开发之位置定位详解与实例解析(GPS定位、Google网络定位,BaiduLBS(SDK)定位)
在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便.定位一般分为三种发方案:即GPS定位.Google网络定位以及基站定位 最简单的手机定位方式当然是通过GP ...