【发布时间】:2014-07-16 13:50:10
【问题描述】:
“抽象数据类型”和“参考数据类型”的概念是否指代同一事物,因此与“原始数据类型”相对使用?
谢谢!
【问题讨论】:
标签: java reference abstract language-lawyer primitive
“抽象数据类型”和“参考数据类型”的概念是否指代同一事物,因此与“原始数据类型”相对使用?
谢谢!
【问题讨论】:
标签: java reference abstract language-lawyer primitive
传统上,“Abstract Data Type”(另见this definition)用于指定“类”的抽象概念。维基百科说:
抽象数据类型是纯粹的理论实体,使用(以及其他 事物)以简化抽象算法的描述,以 对数据结构进行分类和评估,并正式描述 编程语言的类型系统。然而,一个 ADT 可能是 由特定的数据类型或数据结构以多种方式实现 并在许多编程语言中;或以正式的方式描述 规范语言。 ADT 通常以模块的形式实现: 模块的接口声明了对应于 ADT 的过程 操作,有时使用描述约束的 cmets。 这种信息隐藏策略允许实施 在不干扰客户端程序的情况下更改模块。
具体来说,数值数据类型,无论是原始类型还是引用类型,都是“抽象数据类型”的实例。
Java Language Specification 在第 4.1 章中使用了“原始数据类型/值”和“参考数据类型/值”这两个词:
4.1 类型和值的种类
Java 编程语言中有两种类型: 原始类型(§4.2)和引用类型(§4.3)。有, 相应地,可以存储两种数据值 变量,作为参数传递,由方法返回,并操作: 原始值 (§4.2) 和参考值 (§4.3)。
但是,“抽象数据类型”一词从未使用过,这是有充分理由的。
【讨论】:
在我看来,在 java 中确实如此。
简单的解释是,除了原语或类之外,您不能使用任何数据类型,而类是引用数据类型。
【讨论】: