算法(4th ed)(88):基础——数据抽象 4.3.3

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

算法(4th ed)(88):基础——数据抽象 4.3.3

(抽象数据类型的实现:实例方法)

初始化实例变量的代码实现数据类型的实例方法(即每个对象的行为)的代码和 1.1 节中实现静态方法(函数)的代码完全相同。每个实例方法都有一个返回值类型、一个签名(它指定了方法名、所有参数变量的类型和名称)和一个主体(它由一系列语句组成,包括一个返回语句来将一个返回类型的值传递给调用者)。当调用者触发了一个方法时,方法的参数(如果有)均会被初始化为调用者所提供的值,方法的语句会被执行,直到得到一个返回值并且将该值返回给调用者。它的效果就好像调用者代码中的函数调用被替换为了这个返回值。实例方法的所有这些行为都和静态方法相同,只有一点关键的不同:它们可以访问并操作实例变量。如何指定我们希望使用的对象的实例变量?只要稍加思考,就能够得到合理的答案:在一个实例方法中对变量的引用指的是调用该方法的对象中的值。当我们调用heads.increment() 时,increment() 方法中的代码访问的是heads 中的实例变量。换句话说,面向对象编程为 Java 程序增加了另一种使用变量的重要方式。

  • 通过触发一个实例方法来操作该对象的值。

这与调用静态方法仅仅是语法上的区别(请见答疑),但在许多情况下它颠覆了现代程序员对程序开发的思维方式。你会看到,这种方式与算法和数据结构的研究非常契合。实例方法解析如图 1.2.7 所示。

算法(4th ed)(88):基础——数据抽象 4.3.3

图 1.2.7 详解实例方法

评论

发布