第三章:抽象数据类型(ADT)和面向对象编程(OOP)
第三节:抽象数据类型(ADT)
问题一:抽象的和用户定义的数据类型
- 除了编程语言所提供的基本数据类型和对象数据类型,程序员可定义自己的数据类型
- 抽象类型:强调“作用于数据上的操作”,程序员和client无需关心数据如何具体存储的,只需设计/使用操作即可。
- 传统的类型定义:关注数据的具体表示
***一个抽象的数据类型是由它的操作定义的:(抽象数据类型的实现如下图:↓)
问题二:数据类型的分类和操作的分类
1.数据类型的分类:
分为:可变和不可变的数据类型
- 可变类型的变量:提供了可改变其内部数据的值的操作
- 不变数据类型:其操作不改变内部值,而是构造新的对象
2.抽象数据类型的操作的分类
分为:构造器(Creators)、生产器(Producers)、观察器(Observers)、变值器(Mutators)
- 用数学表达式来解释(如下图):↓
- 用实例解释各种操作:↓<