这是Goodrich的《Java中的数据结构和算法》一书中的文本,该书第一章给出了使用this
关键字的原因。
允许一个构造函数主体调用另一个构造函数体。当一个类的一个方法在当前例如,,这通常是通过使用另一个的(非限定(名称来完成的方法。但是调用构造函数的语法是特殊的。Java允许使用关键字this将用作一个构造函数的主体内的方法,以便调用具有不同签名的另一构造函数。
为什么它说其他方法的名称不合格?
从另一个方法调用一个方法有两种方法。一般来说,你会把它的名字称为合格。如果我有一个对象foo
,它有一个方法frobnicate
,我会做
foo.frobnicate();
现在,如果我已经在正确的实例中(比如说,我从foo
上的另一个方法调用frobnicate
(,那么我将使用特殊变量this
。
this.frobnicate();
但是Java允许我们作为一种快捷方式,省略this
并简单地调用方法名称。以下是使用非限定名称调用方法的示例:
frobnicate();
this.
是隐含的。
另一方面,该段试图说明的一点是,构造函数是特殊的。我们不将构造函数称为foo.frobnicate()
;我们只说CCD_ 10。因此,必须有特殊的语法才能从另一个构造函数(即this()
(中调用构造函数。