一、面向过程

1> 思想

  • 面向过程是一种以过程为中心的最基础编程思想,不支持面向对象的特性。
  • 面向过程是一种模块化程序设计方法

2> 开发方法

  • 面向过程的开发方法是以过程(也可以说是模块)为研究核心 ,将不同的过程设计成不同的函数,然后按一定的流程调用即可。

3> 优缺点

  1. 优点

    ① 能够编写高效的代码
    ② 在小型的流程清晰的程序设计方面有一定的优势
  2. 缺点

    ① 编写的代码可重用性低,开发效率较低
    ② 难以或无法完成流程复杂的程序设计任务

二、面向对象

1> 思想

  1. 概念

    ① 对象:人们进行研究的一切事物,包括具体事物和抽象事物。具有一
    定的状态和行为,封装了数据和操作。
    ② 类:具有相同或相似属性对象的抽象。抽象了对象的状态和行为,形
    成类的属性和操作。具有分类和组装两种不同的结构。
    ③ 消息:对象之间进行通信的机制。
  2. 特征

    ① 唯一性:通过唯一的标示来标记不同的对象,标示在对象生命周期内
    不能改变。
    ② 分类性:具有一致数据结构和行为的对象抽象成的类
    ③ 继承性:子类主动共享父类数据结构和方法的机制。包括单继承和多
    继承(oc语言是单继承)。是面向对象开发中最重要的特征。
    ④ 多态性:不同的对象调用相同的操作或函数会产生不同的结果
  3. 主要思想

    ① 万物皆对象的思想,更加符合人们认识世界的过程
    ③ 主要考虑的是解决问题所涉及的对象,将对象的属性和相关操作封装
    在一起,通过消息机制来实现对象之间的通信。

2> 开发方法

  1. 分析需求

  2. 建立对象模型

    ① 确定类
    ② 准备数据字典
    ③ 确定关联
    ④ 确定属性
    ⑤ 使用继承来细化对象
    ⑥ 完善对象模型
  3. 建立动态模型

    ① 准备脚本,脚本又叫宏或批处理文件
    ② 确定事件
    ③ 准备事件跟踪表
    ④ 构造状态图
  4. 功能建模

    ① 确定输入输出值
    ② 建立数据流图
  5. 确定类的操作

3> 优缺点

  1. 优点

    ① 比面向过程思想的代码重用率高
    ② 比面向过程思想的结构清晰
    ③ 实现了封装,降低了外部操作内部数据的风险
    ④ 包含了面向过程思想
  2. 缺点

    ① 由于实现了封装,操作内部数据将增加工作量
    ② 由于进行对象及与对象相关的抽象, 会消耗相应的时间和空间代价,
    性能较低

OC语言-01-面向过程与面向对象思想的更多相关文章

  1. 为什么大一先要学C语言(面向过程)再学C++或JAVA(面向对象)?

    面向对象和面向过程各有千秋 一.面向过程与面向对象对比  面向过程:强调的是每一个功能的步骤,有很多很多方法组成,这些方法相互调用,完成需求. 面向对象:强调的是对象,然后由对象去调用功能. 面向过程 ...

  2. C语言学习系列(二)面向过程和面向对象

    一.基本定义 (一).面向过程(procedure oriented programming POP) 面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可. ...

  3. JS高级---体会面向对象和面向过程的编程思想

    体会面向对象和面向过程的编程思想 ChangeStyle是自定义的构造函数,再通过原型添加方法的函数. 实例化对象,导入json参数,和创建cs,调用原型添加的方法函数 过渡,先熟悉记忆 <!D ...

  4. JS是面向过程、面向对象还是基于对象?面向对象的代码体现

    一.问题 javascript是面向对象的,还是面向过程的?基于对象是什么意思? 对象: 指的是对某一类事物进行抽象,抽象出这一类事物共同的特征以及行为(也就是属性和方法),那些拥有这一共同属性和方法 ...

  5. 【JAVA】笔记(2)---面向过程与面向对象;类,对象;实例变量,引用;构造方法;

    面向过程与面向对象: 1.面向过程思想的典型栗子是C语言,C语言实现一个程序的流程是:在主函数中一步一步地罗列代码(定义子函数来罗列也是一样的道理),以此来实现我们想要的效果: 2.面向对象思想的典型 ...

  6. 面向过程 vs 面向对象

    从网上摘录了一些面向过程vs.面向对象的分析,先简单记录如下,稍后会继续整理. 为什么会出现面向对象分析方法? 因为现实世界太复杂多变,面向过程的分析方法无法实现. 面向过程 采用面向过程必须了解整个 ...

  7. C++笔记005:用面向过程和面向对象方法求解圆形面积

    原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 结束了第一个hello world程序后,我们来用面向过程和面向对象两个方法来求解圆的面积这个问题,以能够更清晰的体会面向对象和面向过程. ...

  8. PHP mysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理

    相关文章:PHP的mysql扩展整理,操作数据库的实现过程分析  PHP PDO扩展整理,包括环境配置\基本增删改查\事务\预处理 介绍 mysqli是PHP程序与mysql数据库进行数据交互的桥梁, ...

  9. 从面向过程到面向对象再到MVC

    /* * * title: 从面向过程到面向对象再到MVC * author: tanghao * date: 2020.9.30 * version: 1.0 * */ 前言 本文档通过一个显示20 ...

随机推荐

  1. 2014 网选 5012 Dice(bfs模板)

    /* 题意:就是给定两个筛子,每个筛子上6个面,每个面的数字属于[1,6], 且互不相同! 问a筛子最少经过按照题目规定的要求转动,达到和b筛子上下左右前后的数字相同! 思路:很直白的bfs,将每一种 ...

  2. 关于VSTO调用Excel后进程无法退出的解决方案:

    VSTO的Excel对象模型提供了托管代码对Excel的操作.但是它的实现时通过RCW(Runtime Com Wrapper)实现的,所以无法完全按照托管代码的运行方式操作.COM的资源释放时通过引 ...

  3. 笔试测试开发题三道(python)

    笔试遇到的三道测试开发题,虽然都不难,但关键还是思路吧!我想在开发东西的时候应该具备的就是思路,有了思路尝试去写,或查相关文档或代码,在此基础上需要不断调整最终达到需求.思路又是在不断练习中获得的. ...

  4. 初涉SQL Server性能问题(1/4):服务器概况

    当你作为DBA时,很多人会向你抱怨:“这个程序数据加载和蜗牛一样,你看看是不是服务器出问题了?”造成这个问题的原因有很多.可能是程序应用服务器问题,网络问题,程序实现方式问题,数据库服务器负荷过重.不 ...

  5. 第十二篇 SQL Server代理多服务器管理

    本篇文章是SQL Server代理系列的第十二篇,详细内容请参考原文 在这一系列的上一篇,我们查看了维护计划,一个维护计划可能会创建多个作业,多个计划.你还简单地看了SSIS子系统,并查看了维护计划作 ...

  6. iOS10新特性之CallKit开发详解:锁屏接听和来电识别

    国庆节过完了,回家好好休息一天,今天好好分享一下CallKit开发.最近发现好多吃瓜问CallKit的VoIP开发适配,对iOS10的新特性开发和适配也在上个月完成,接下来就分享一下VoIP应用如何使 ...

  7. 网络编程:socket--python核心编程(3),chapter 1

    最近两天把第一部分的网络编程socket好好学习了一番,收获也蛮多的... 套接字:能使运行在不同或相同计算机上运行的进行通信:套接字一种是基于文件的(同一台计算机进程间通信),另一种是基于网络的(同 ...

  8. Spring基础——一个简单的例子

    一.学习版本 spring-framework-4.0.0 二.导入 jar 包: 三.在类路径下创建 Spring Config 文件:ApplicationContext.xml <?xml ...

  9. 使用openssl生成RSA公私密钥

    在windows 环境下 1.进入cmd命令窗口 切换到openssl程序目录下 2.输入openssl.exe,进入openssl命令模式下 3.生成私钥输入“genrsa -out app_pri ...

  10. 基于KV Data Model实现Table Data Model

    HBase对外暴露出来的是一个表格数据模型,如下图所示 rowkey应用程序可以自己设计.每一个Cell可以保存多个版本的数据,由timestamp标示版本.应用程序可以自己指定timestamp,如 ...