一、结构化程序设计
1,概念:
传统的结构化程序设计思想的核心是功能的分解。将问题分解为多个功能模块,根据模块功能来设计用于存储数据的数据结构,最后编写了过程(函数)对数据进行操作实现模块的功能。程序由一系列处理数据的过程(函数)组成。这种设计方法的重点是面向过程的,也称为面向过程的程序设计方法。

2,特点:
传统的结构化程序设计思想可归结为:

“程序=数据结构+算法”

数据结构用于量化描述要解决的问题。

算法研究如何以更快、更有效的方式来组织求解问题的具体过程,将程序定义为处理数据的一系列过程。面向过程的程序设计把数据结构和过程看作两个实体,以过程为中心,特点是数据和程序分离,即数据和数据处理分离。

结构化程序设计的基本思想是采用自顶向下,并逐步细化的设计方法。算法实现采用顺序、选择、循环三种控制结构。
3,实例:

4,优缺点:
优点:
通过自顶向下,并逐步细化的设计方法,为处理复杂问题提供有力手段。性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素
缺点:
(1)模块间调用关系复杂,增加了模块间的依赖性和修改调试程序的难度,难以适应大型软件设计
(2)数据结构和过程分离,一旦数据结构发生改变,必须修改与之相关的所有模块对应的过程或函数

二、面向对象的程序设计
1,概念
在面向对象程序设计中,重点是将要被操作的数据,而不是实现操作的过程。数据是软件分解的基础,而不是功能。重要的是不把数据和对数据将要执行的操作视为两个单独的实体。而是把它们当作一个完整的实体(对象)。外部程序和过程程无法直接访问数据本身,从而使数据更安全。同类对象还可抽象出共性,形成类。程序有类的定义和类的使用构成,主程序中定义各个对象并规定他们之间传递消息的先后顺序;程序中的操作都是通过向对象发送消息来实现。对象接受消息后,启动此类对象有关的函数(方法)来完成相应的操作。

比如:每个银行账户是一个对象,包括账户数据(账户号、名称、余额等)和对数据的操作:存款、取款、转账(通过函数实现),所有的银行账户具有相同的数据属性和操作,可抽象出共性,形成银行账户类。每个银行帐户都是银行帐户类的一个实例。在面向对象中,每个银行帐户都被称为银行帐户类的对象。
对象与类的概念及关系:


对象间的交互:

2,特点
(1)封装性

对象是一个封装体,在其中封装了该对象的属性和操作。通过限制对属性和操作的访问权限,可以将属性“隐藏”在对象内部,对外部提供某些接口(公有),在对象之外只能通过接口对对象进行操作。
(2)继承与派生性

(3)多态性


多态性是指同一个消息被不同对象接收时,产生不同的结果,即同一接口,不同方法。分为编译时多态(函数、运算符重载实现)和运行时多态(继承和虚函数实现)
3,面向对象的软件开发方法:

4,优缺点:
优点:
(1)易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
(2)可直接模拟现实世界。
缺点:
性能比面向过程低

理解面向过程和面向对象的程序设计方法相关推荐

  1. 如何理解面向过程和面向对象?

    一句话理解面向对象 有人说:"如果上帝是程序员,他怎么创造世界上的所有动物.",理解这个问题就理解了面向对像. 面向过程和面向对象区别? 面向过程的思路:什么事都自己做:分析解决问 ...

  2. 带你理解面向过程与面向对象

    START WeChat Applet(公众号) :Java空巷 一.前言 如果你总是对面向对象和面向过程傻傻分不清,这篇博客尽量会用通俗的方式来讲解. 二.面向过程 概念 面向过程是一种以过程为中心 ...

  3. Java 从面向过程走向面向对象的程序设计思想

    什么是面向过程?面向对象? 它们都是解决问题的思路 我用一个生活的例子来区别它们: 起床,洗漱,吃饭--等这些都是生活中的事 吃饭:我们想吃饭之前要做饭,饭菜可以是自己做,或者爸妈做,也可以下馆子 面 ...

  4. 简单抽象的去理解 面向过程和面向对象 的区别

    面向过程和面向对象的区别 兴趣所致录 面向过程 场景:你是一条不折不扣的单身狗,然后还想吃苹果[手动滑稽狗头] 首先吃苹果得有苹果,所以得去买苹果,然后洗苹果, 如果焦作一下不想吃皮,你得先削皮, 要 ...

  5. 深入理解面向过程与面向对象的思想差异与各自特色

    一.什么是面向过程 面向过程是一种思维方式.当试图通过面向过程解决问题时,我们的关注点在于问题解决的流程,重在这个过程的控制,需要用大量的模块(模块化的思想源自于硬件,在C语言中是函数)将大问题拆解, ...

  6. 面向过程与面向对象的程序设计思想

    面向过程:"面向过程"是一种以事件为中心的编程思想.分析出解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用的时候一个个一次调用就行了. 面向对象:"面向对象&q ...

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

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

  8. php是面向对象还是过程,PHP面向过程和面向对象

    php程序编写分为面向过程和面向对象.两者在功能实现上没有区别,但是在代码编写上区别很大,面向过程的代码很乱,不易管理,而面向对象把常用的功能封装为一个类,这样代码清楚多了. 下面举个小例子说明一下: ...

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

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

最新文章

  1. python查看包的安装路径_查看python包的安装路径,检查安装路径设置。Python包的Python来自,从中,检测...
  2. ubuntu18.04.4 下 pycharm 中 链接 已有的virtualenv
  3. Yii框架的form处理
  4. Java基础 — 异常
  5. leetcode 1721. Swapping Nodes in a Linked List | 1721. 交换链表中的节点(Java)
  6. 四线接近开关接线图_开关、电机、断路器、电热偶、电表接线图!非常齐全,快囤起来吧...
  7. 随机排列_“按字母顺序排列”其实是种随机顺序
  8. Integer注意_享元设计模式
  9. linux文件自动改名,C#如何在生成文件夹或者文件时候自动重命名
  10. [转载] python字符串数组字典_Python:字符串、列表、元组、字典
  11. 推荐《Office SharePoint Server 2007案例实战开发》
  12. 损失函数的意义和作用_BN究竟起了什么作用?一个闭门造车的分析
  13. java 分布式任务_分布式定时任务(一)
  14. LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置
  15. 免费网站域名去哪找?免费域名靠谱吗?
  16. wfa 认证 android 必须,我看到有个WFA行动学习促动师的认证,有谁了解这个认证的,介绍一下怎么可以通过认证,通过率高吗?...
  17. ChatGPT连接企微
  18. invoke调用成员方法(无参和有参):
  19. 机器学习项目三:XGBoost人体卡路里消耗预测
  20. 6D模型:超越PDCA

热门文章

  1. 【SpringMVC】概述
  2. 2018年终总结:自由而独立
  3. 命名实体识别训练集汇总(一直更新)
  4. PyTorch学习之六个学习率调整策略
  5. LeetCode简单题之两个列表的最小索引总和
  6. 一些量化(quantization)技巧
  7. MXNet 图优化与算子融合
  8. 怎样训练YOLOv3
  9. VIM配置攻略(最强干货加强版)
  10. Java中的对象和包