南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)抽象数据类型 Abstract Data Types

Abstract Data Types 抽象数据类型 Institute of Computer Software 2021/1/28 Nanjing University
抽象数据类型 Abstract Data Types 2021/1/28 Institute of Computer Software Nanjing University 1

摘要 UNY 2 从面向过程到面向对象 口如何规约对象?———抽象! oAbstract data type ADT与软件开发 Institute of Computer Software 2021/1/28 Nanjing University
摘要 从面向过程到面向对象 如何规约对象?——抽象! Abstract data type ADT与软件开发 2021/1/28 Institute of Computer Software Nanjing University 2

过回顾:结构化软件开发 口何谓“结构化( structured)”开发方法? a the Big name"EW. dijkstra 开发过程侧面 口自顶向下,逐步求精 口程序设计侧面 口小结构: concatenation, selection, and repetition. 口大结构:过程抽象,避免全局变量 Institute of Computer Software 2021/1/28 Nanjing University
回顾:结构化软件开发 何谓“结构化(structured)”开发方法? The Big Name “E.W. Dijkstra” 开发过程侧面 自顶向下,逐步求精 程序设计侧面 小结构:concatenation, selection, and repetition. 大结构:过程抽象,避免全局变量 2021/1/28 Institute of Computer Software Nanjing University 3

回顾:结构化软件开发 UN 4 o“结构化( structured)”的合理性 管理复杂性的有效手段 分解,抽象,层次 Correctness 规约与实现 Extendibility? Reusability? Institute of Computer Software 2021/1/28 Nanjing University
回顾:结构化软件开发 “结构化(structured)”的合理性 管理复杂性的有效手段 ◼ 分解, 抽象, 层次 Correctness 规约与实现 Extendibility? Reusability? 2021/1/28 Institute of Computer Software Nanjing University 4

从面向过程到面向对象 5 口“结构化”的基本思想已经深入人心 口但对于复杂、易变、交互性软件系统,以“功 能”为中心的分解方式有局限 口完全自顶向下的功能分解? 口线性过程式的程序组织? 口应变 Institute of Computer Software 2021/1/28 Nanjing University
从面向过程到面向对象 “结构化”的基本思想已经深入人心 但对于复杂、易变、交互性软件系统,以“功 能”为中心的分解方式有局限 完全自顶向下的功能分解? 线性过程式的程序组织? 应变 2021/1/28 Institute of Computer Software Nanjing University 5

最病 A The first step 6 口程序运行:在某个数据体上施以某些操作。 口两个要素 口操作(功能) Functions[or:○ perations, Actions 口客体(对象)○ bjects [or:Data] Action Object Processor Institute of Computer Software 2021/1/28 Nanjing University
The first step 程序运行:在某个数据体上施以某些操作。 两个要素 操作(功能)Functions [or: Operations, Actions] 客体(对象)Objects [or: Data] 2021/1/28 Institute of Computer Software Nanjing University 6 Action Object Processor

如何导出软件系统的结构? 7 口两条途径 口从操作/功能入手 口从客体/对象入手 口形成两种抽象方法: 口基于过程的抽象 口基于数据的抽象 Institute of Computer Software 2021/1/28 Nanjing University
如何导出软件系统的结构? 两条途径: 从操作/功能入手 从客体/对象入手 形成两种抽象方法: 基于过程的抽象 基于数据的抽象 2021/1/28 Institute of Computer Software Nanjing University 7

过过程抽象vs数据抽象 8 口过程抽象:指任何一个明确定义功能的操作都 可以被使用者看作单个的实体,尽管这个操作 实际上可能由一系列更低级的操作完成 口数据抽象:定义了数据类型和施加于该类型对 象上的操作,并限定了对象的值只能通过使用 这些操作修改和观察。包含了2个概念: 模块封装 2.信息隐蔽 Institute of Computer Software 2021/1/28 Nanjing University
过程抽象 vs. 数据抽象 过程抽象:指任何一个明确定义功能的操作都 可以被使用者看作单个的实体,尽管这个操作 实际上可能由一系列更低级的操作完成 数据抽象:定义了数据类型和施加于该类型对 象上的操作,并限定了对象的值只能通过使用 这些操作修改和观察。包含了2个概念: 1. 模块封装 2. 信息隐蔽 2021/1/28 Institute of Computer Software Nanjing University 8

数据抽象的意义 9 口数据抽象提供了面向对象计算的起点:系统应 该被分解为概念上的实体,实体的内部细节应 该被隐藏! Institute of Computer Software 2021/1/28 Nanjing University
数据抽象的意义 数据抽象提供了面向对象计算的起点:系统应 该被分解为概念上的实体,实体的内部细节应 该被隐藏! 2021/1/28 Institute of Computer Software Nanjing University 9

划数据抽象发展 口第一阶段:从无类型的二进制到基本数据类型 口 Fortran, Algol:整型、实数、布尔数 口第二阶段:从基本类型到用户自定义类型 口Algo|68, Pascal 口第三阶段:从用户自定义类型到抽象数据类型 ( Abstract Data Types)--面向对象 口模块化程序设计和模块 Institute of Computer Software 2021/1/28 Nanjing University
数据抽象发展 第一阶段:从无类型的二进制到基本数据类型 Fortran, Algol: 整型、实数、布尔数 第二阶段:从基本类型到用户自定义类型 Algol68, Pascal 第三阶段:从用户自定义类型到抽象数据类型 (Abstract Data Types)-- 面向对象 模块化程序设计和模块 2021/1/28 Institute of Computer Software Nanjing University 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《数据结构》课程教学资源:课程教学资源(PPT课件讲稿)第九章 查找表.ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)动态规划.pptx
- 上海交通大学:Mining Massive Datasets(PPT讲稿).ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第一章 概述(谢希仁).ppt
- 北京航空航天大学:《数据挖掘——概念和技术(Data Mining - Concepts and Techniques)》课程教学资源(PPT课件讲稿)Chapter 03 Data Preprocessing.ppt
- 《数字图象处理》课程教学资源(PPT课件讲稿)第七章 邻域运算.ppt
- 上海交通大学:《编译器构造》课程教学资源(PPT讲稿,马融)Compiler.pptx
- 《软件工程 Software Engineering》教学资源:课程教学大纲.pdf
- 沈阳理工大学:《单片机C语言应用程序设计》课程PPT教学课件(单片机C语言编程)04 C51编程设计(廉哲).pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)傅里叶分析与卷积 Fourier Analysis and Convolution.pptx
- 北京科技大学:物联网知识体系和学科建设(PPT讲稿,王志良).ppt
- 香港理工大学:Discovering Classification Rules.ppt
- 《软件质量与测试》课程教学资源(PPT大纲课件,目录版).pptx
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第七章 高级汇编语言技术(主讲:李敬兆).ppt
- 《Vb程序设计教程》课程教学资源(PPT课件讲稿)第三章 VB语言基础.pps
- 吉林大学:《C语言》课程教学资源(PPT课件讲稿)第6章 利用数组处理批量数据.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第4章 处理器(CPU).ppt
- 北京大学:人工神经网络(PPT课件讲稿)Artificial Neural Networks,ANN.ppt
- 西安电子科技大学:《神经网络与模糊系统》课程教学资源(PPT课件讲稿)Chapter 6 结构和平衡 Architecture and Equilibria.ppt
- 清华大学:A Feature Weighting Method for Robust Speech Recognition(Speech Activities in CST).ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)并行编译简介.ppt
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第6章 AT89S52单片机的串行口.ppt
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第4章 循环控制.ppt
- 上海交通大学:《通信网络》课程PPT教学课件(Communication Networks)Introduction(主讲:叶通).pptx
- 北京师范大学:《多媒体技术基础》课程教学资源(PPT课件讲稿)第二章 数字图像(曾兰芳).ppt
- 利用EXCEL进行数据分析与图表处理(PPT讲稿).pptx
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第9章 模块化开发.ppt
- 《计算科学基础研究》课程教学资源(PPT课件讲稿)类的定义.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第九章 机器无关的优化(赵建华).ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第一章 电子商务基础知识(主讲:贾朝辉).pptx
- 《操作系统》课程教学资源(PPT课件讲稿)内存管理 Memory Management.ppt
- 沈阳理工大学:《大学计算机基础》课程教学资源(PPT课件讲稿)第3章 编辑排版软件(Microsoft Word 2000).pps
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第4章 算法控制结构.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第二章 线性表.ppt
- 上海交通大学:《数字图像处理 Digital Image Processing》课程教学资源(PPT课件讲稿,第三版)Chapter 12 Object Recognition.pptx
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 01 From C to C++.ppt
- 《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第一讲 绪论.ppt
- 《计算机网络安全技术》课程教学资源(PPT课件讲稿)第五章 防火墙技术.ppt
- 《软件测试 Software Testing》教学资源(PPT讲稿)Part 2 Testing Fundamentals.ppt
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第2章 数据类型及基本运算量.ppt