算法(4th ed)(72):基础——数据抽象 4.1.5

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

算法(4th ed)(72):基础——数据抽象 4.1.5

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

每种数据类型中的值都存储于一个对象中。要创建(或实例化)一个对象,我们用关键字 new 并紧跟类名以及 ()(或在括号中指定一系列的参数,如果构造函数需要的话)来触发它的构造函数。构造函数没有返回值,因为它总是返回它的数据类型的对象的引用。每当用例调用了new(),系统都会:

  • 为新的对象分配内存空间;
  • 调用构造函数初始化对象中的值;
  • 返回该对象的一个引用。

在用例代码中,我们一般都会在一条声明语句中创建一个对象并通过将它和一个变量关联来初始化该变量,和使用原始数据类型时一样。和原始数据类型不同的是,变量关联的是指向对象的引用而并非数据类型的值本身。我们可以用同一个类创建无数对象——每个对象都有自己的标识,且所存储的值和另一个相同类型的对象可以相同也可以不同。例如,以下代码创建了两个不同的 Counter 对象:

复制代码
Counter heads = new Counter("heads");
Counter tails = new Counter("tails");

抽象数据类型向用例隐藏了值的表示细节。可以假定每个Counter 对象中的值是一个 String 类型的名称和一个 int 计数器,但不能编写依赖于任何特定表示方法的代码(即使知道假定是否正确——也许计数器是一个 long 值呢)对象的创建过程如图 1.2.2 所示。

算法(4th ed)(72):基础——数据抽象 4.1.5

图 1.2.2 创建对象

评论

发布