1、面向对象程序设计与结构化程序设计的优缺点对比

(1)结构化程序(C程序为例)的特点

  • 程序 = 数据结构 + 算法
  • 程序由全局变量以及众多相互调用的函数组成, 算法以函数的形式实现,用于对数据结构进行操作。

(2)结构化程序设计缺点
① 结构化程序设计中,函数和其所操作的数据结构,没有直观的联系。随着程序规模的增加,程序逐渐难以理解,很难一下子看出来:

  • 某个数据结构到底有哪些函数可以对它进行操作?
  • 某个函数到底是用来操作哪些数据结构的?
  • 任何两个函数之间存在怎样的调用关系?

②结构化程序设计没有“封装”和“隐藏”的概念。
③要访问某个数据结构中的某个变量,就可以直接访问,那么当该变量的定义有改动的时候,就要把所有访问该变量的语句找出来修改,十分不利于程序的维护、扩充。
④ 难以查错,当某个数据结构的值不正确时,难以找出到底是那个函数导致的。
⑤重用:在编写某个程序时,发现其需要的某项功能,在现有的某个程序里已经有了相同或类似的实现,那么自然希望能够将那部分代码抽取出来,在新程序中使用。
⑥在结构化程序设计中,随着程序规模的增大,由于程序大量函数、变量之间的关系错综复杂,要抽取这部分代码,会变得十分困难。

软件业的目标是更快、更正确、更经济地建立软件。总之,结构化的程序,在规模庞大时,会变得难以理解,难以扩充(增加新功能),难以查错,难以重用。违背了软件设计的目标。

(3)面向对象程序设计的特点

  • 面向对象的程序设计方法,能够较好解决上述问题。
  • 面向对象的程序 = 类 + 类 + …+ 类
  • 设计程序的过程,就是设计类的过程。

(4)面向对象的程序设计方法:

  • 将某类客观事物共同特点(属性)归纳出来,形成一个数据结构(可以用多个变量描述事物的属性);
  • 将这类事物所能进行的行为也归纳出来,形成一个个函数,这些函数可以用来操作数据结构(这一步叫“ 抽象”)。

然后,通过某种语法形式,将数据结构和操作该数据结构的函数“捆绑”在一起,形成一个“ 类”,从而使得数据结构和操作该数据结构的算法呈现出显而易见的紧密关系,这就是“封装” 。面向对象的程序设计具有“抽象”,“封装”“继承”“多态”四个基本特点。

2、使用成员函数与成员变量的三种方式

  • 对象名.成员名
  • 指针->成员名
  • 引用名.成员名

3、对象的内存分匹配

  • 和结构变量一样,对象所占用的内存空间的大小,等于所有成员变量的大小之和。
  • 每个对象各有自己的存储空间。一个对象的某个成员变量被改变了,不会影响到另一个对象。

4、对象间运算
和结构变量一样,对象之间可以用 “=”进行赋值,但是不能用 “ ==”,“ !=”,“ >”,“ <”“ >=”“ <=”进行比较,除非这些运算符经过了“重载”。

1、结构化、面向对象程序设计差别、类基本概念相关推荐

  1. 结构化查询语言SQL基本功能及其概念

    SQL语法 可以把SQL分为两部分数据操作语言DML和数据定义语言DDL. SQL(结构化查询语言)有用于执行查询.更新.删除.插入记录的语法. SQL的DML部分: select-从数据库表中获取数 ...

  2. css–sprit_高级CSS –类已用完–通过使用结构化格式标签避免类

    css–sprit Nothing makes me cringe more than when I see other programmers use a class declaration for ...

  3. 【粉笔结构化面试】综合分析类

    文章目录 总结 刷题 理论-综合分析类 社会现象题目 1-提观点方法 2-重分析方法 3-抓落实方法 总结 提观点:基本看法 重分析:影响(意义.危害).成因 抓落实:正面现象加以落实.负面现象加以解 ...

  4. 结构化面试.组织管理类

    综合分析题都是怎么看.怎么理解.谈谈启示,组织类题目问得非常具体,你怎么组织?你怎么开展?如何开展?考查组织协调做工作的实务能力,给你一件事情或工作能否办好,相对更加务实. 例题 1.你所在的地区是有 ...

  5. 结构化面试.应急应变类+人际关系类+情景模拟类

    一.应急应变类 1.题目特征 应急应变题的特点是突发性,通常题干会给出在工作或生活中突然发生的一些让人焦头烂额.紧急的问题,如突然发生争执.开会时突然断电了.窗口办理业务过程中群众投诉等.与组织管理题 ...

  6. 结构化 VS 非结构化

    如果说结构化信息更多的忠实.详实地记录了企业的生产交易活动,是显性的表示,那么 非结构化信息则隐性包含了掌握着企业命脉的关键,隐含着许多提高企业效益的机会. 非结构化数据 非结构化数据库是指其字段长度 ...

  7. C 语言的标准输入对象是,《面向对象程序设计C+》期末试卷及标准答案

    <面向对象程序设计C++>期末考试试卷(A)班级:姓名:学号:分数: 试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在 其他地方均无效. (答题纸在本套试卷的第10页上) 一.选 ...

  8. 什么是面向对象程序设计?

    https://baike.baidu.com/item/面向对象程序设计/24792 一.概念 面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建 ...

  9. 非结构化信息-》半结构化-》结构化-》关联数据体系-》数据挖掘-》故事化呈现-》决策导向

    非结构化数据介绍来源: 非结构化信息_百度百科 https://baike.baidu.com/item/%E9%9D%9E%E7%BB%93%E6%9E%84%E5%8C%96%E4%BF%A1%E ...

  10. 20175333曹雅坤 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

最新文章

  1. 深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)
  2. php 逗号运算符,基础篇PHP运算符总结宝典
  3. 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
  4. maven工程 java 实现文件上传 SSM ajax异步请求上传
  5. php多级查询,MySQL 多级查询
  6. 如果要学习web前端,需要学习什么
  7. 大数据系列2-liunx基础-2基本操作
  8. 50行代码实现的一个最简单的基于 DirectShow 的视频播放器
  9. Selenium2Library(RF)浏览器打不开问题汇总
  10. springcloudalibaba 架构图_Spring Cloud Alibaba 架构实战
  11. 模电数电c语言笔试题,模电数电题面试题集锦
  12. 远程连接服务器数据库报错:Host ‘XXXXXX’ is blocked because of many connection errors
  13. usb keyboard找不到驱动程序_台式机也能用上蓝牙,毕亚兹USB蓝牙适配器体验
  14. 让Fireball CodeEditor控件禁止中文双倍输入
  15. 流媒体技术基础-流媒体文件格式
  16. golang开发android应用(一) - go语言android应用环境搭建
  17. “朝抵抗力最大的路径上走”
  18. 2022最新阿里云域名注册和续费优惠口令及使用方法
  19. JAVA使用RXTX编写串口调试工具-代码分析
  20. MAC VMware Fusion 克隆虚拟机

热门文章

  1. 亚马逊Amazon广告API如何申请注册?
  2. 工业4.0,智能制造和大规模定制
  3. vue项目富文本编辑器输入格式化以计算总字数
  4. win10 cmd切换目录
  5. html标签嵌套规则
  6. Linux下压缩文件夹
  7. Lua 斗地主算法实现
  8. CSGO显示FPS(帧数)指令集设置调用方法 2020年最新版本CSGO教程
  9. 第8章 卷积神经网络
  10. 各种加密模式在TLS协议中的运用 2 (AEAD:CCM模式)