算法(4th ed)(71):基础——数据抽象 4.1.4

阅读数:12 2019 年 11 月 2 日 11:55

算法(4th ed)(71):基础——数据抽象 4.1.4

(使用抽象数据类型:对象)

一般来说,可以声明一个变量heads 并将它通过以下代码和 Counter 类型的数据关联起来:

复制代码
Counter heads;

但如何为它赋值或是对它进行操作呢?这个问题的答案涉及数据抽象中的一个基础概念:对象是能够承载数据类型的值的实体。所有对象都有三大重要特性:状态标识行为。对象的状态即数据类型中的值。对象的标识能够将一个对象区别于另一个对象。可以认为对象的标识就是它在内存中的位置。对象的行为就是数据类型的操作。数据类型的实现的唯一职责就是维护一个对象的身份,这样用例代码在使用数据类型时只需遵守描述对象行为的 API 即可,而无需关注对象状态的表示方法。对象的状态可以为用例代码提供信息,或是产生某种副作用,或是被数据类型的操作所改变。但数据类型的值的表示细节和用例代码是无关的。引用是访问对象的一种方式。Java 使用术语引用类型以示和原始数据类型(变量和值相关联)的区别。不同的 Java 实现中引用的实现细节也各不相同,但可以认为引用就是内存地址,如图 1.2.1 所示(简洁起见,图中的内存地址为三位数)。

算法(4th ed)(71):基础——数据抽象 4.1.4

图 1.2.1 对象的表示

评论

发布