知识卡片

抽象数据类型:把数据和操作绑定并隐藏内部结构

专业/工作 · 1292.g

内容

传统的用户定义数据类型(如 C 语言的 struct)只能描述新的数据布局,却不附带任何操作它的函数——这意味着任何代码都能直接读写它的内部字段,绕开原本该有的检查逻辑,破坏结构本该维持的不变量(比如栈该有的后进先出特性)。抽象数据类型(ADT)解决了这个缺口:它把数据表示和操作这份数据的函数绑定成一个单元来声明,并提供隐藏机制把内部结构对外屏蔽,只留下明确定义的操作接口(如栈只暴露 push/pop/isEmpty/isFull)。发散:ADT 相比”数据结构+散落各处的操作函数”多出来的那部分价值,恰好就是[[信息隐藏是抽象工具的核心保护机制]]所强调的可靠性保障——它是”用户定义数据类型”通向”类”这个更完整概念的中间台阶,理解了 ADT 的这两个特征(打包声明、隐藏内部),就理解了为什么面向对象范型会把类当作组织代码的核心单元,而不只是”结构体加几个相关函数”这种松散的组合。

参考来源

《计算机科学概论》第8章《数据抽象》