这个问题在这里已经有答案了:
“this”关键字是如何工作的(22个答案)
三年前关门了。
public class Leaf {
int i=0;
Leaf increment() {
i++;
return this;
}
void print() {
System.out.println("i= "+ i);
}
public static void main(String[] args) {
Leaf x =new Leaf();
x.increment().increment().increment().print();
}
}
输出:
i=3
直到现在我才知道 this
关键字用于生成对已调用该方法的对象的引用。所以在这段代码中,对象x调用方法increment和 this
关键字提供对x的引用。但是,这又如何帮助一个人执行下一行中的多次增量呢? x.increment().increment().increment().print();
2条答案
按热度按时间bvjxkvbb1#
您已经发布了一个方法链接的示例;链接的维基百科条目说(部分)
方法链接,也称为命名参数惯用法,是在面向对象编程语言中调用多个方法调用的常用语法。每个方法都返回一个对象,允许调用在单个语句中链接在一起,而不需要变量来存储中间结果。
在
x.increment().increment().increment().print();
每个increment()
被链接到下一个呼叫。而且,increment
开始于i++
所以每次通话都会增加i
1。它在功能上等同于另请参见
StringBuilder.append()
方法;他们也会回来this
允许像这样的方法链接mwecs4sa2#
这里没有什么花哨或含糊不清的地方,问题是这如何帮助一个人在执行多个增量,如下面一行?您将调用increment()方法三次,就这么简单,increment方法id将返回一个该类的对象,以便可以再次调用increment方法。所以如果x是leaf类型的对象,那么x.increment也是leaf类型的对象(increment的返回类型是leaf),所以可以再次调用increment方法。每次调用increment方法时,我们都将i递增1。如果还不清楚,请告诉我。