首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

数据类型和抽象数据类型

数据类型和抽象数据类型

数据类型和抽象数据类型

  在用高级程序设计语言编写的程序中,必须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型。例如,C语言中的基本数据类型有:整型、字符型、实型(包括单精度型和双精度型)及枚举型。

  数据类型是一个"值"的集合和定义在此集合上的"一组操作"的总称。

  所有高级语言中都有"整型"数据类型,它们的实现方法可以各自不同,但对程序员而言,它们是"相同"的。程序员使用它们时仅需了解它们的数学特性,而不需要了解它们在语言中是如何实现的。换句话说,各种语言中实现的是同一个"整数类型",而这个"整数类"的定义仅对"整数的数学特性"有明确规定。可称这个"整数类型"为"抽象数据类型"。
 
抽象数据类型(Abstract Data Type 简称 ADT)是指一个数学模型以及定义在此数学模型上的一组操作。

  例如,矩阵的抽象数据类型定义为,矩阵是一个由 m n 个数排成 m 行 n 列的表,它可以进行初等变换、相加、相乘、求逆、……等运算。

 抽象数据类型有两个重要特性:
 ·数据抽象
  用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)。

 ·数据封装
  将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节。
程序中对变量或常量说明其所属类型的作用是,对它们加上两个约束条件:一是可取值的范围,二是可进行的操作。
  在高级编程语言中实现的整数都具有下列"数学特性":
  它是这样一个序列:
   ……,-2,-1,0,1,2,……

  此外,它可以进行"+"、"-"、""、"/"及"取模"等运算。
"抽象"意为提取"数学特性"。抽象数据类型必须给它的外部用户提供完整的 "接口",例如,明确长整数是三个整数的序列以及可以对它进行的操作等。

  同时,对外部用户来说,不需要了解它是如何实现的,内部实现的改变不影响外部的使用,更重要的是应该做到,不能让外部用户侵入内部。对外部用户来说,抽象数据类型应该完全是一个黑盒子。
继承事业,薪火相传
返回列表