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调用方法增量,this
关键字提供对x的引用。但是,如何帮助人们执行多个增量,如下一行所示?
x.increment().increment().increment().print();
答案 0 :(得分:5)
您已发布method chaining的示例;链接的维基百科条目(部分)
方法链,也称为命名参数idiom ,是在面向对象编程语言中调用多个方法调用的常用语法。每个方法都返回一个对象,允许在单个语句中将调用链接在一起,而不需要变量来存储中间结果。
在x.increment().increment().increment().print();
中,每个increment()
链接到下一个电话。而且,increment
以i++
开头,因此每次调用都会将i
增加1.它在功能上等同于
x.increment();
x.increment();
x.increment();
x.print();
另见StringBuilder.append()
方法;他们还返回this
以允许方法链接,如
System.out.println(new StringBuilder("Hello ").append("World"));
答案 1 :(得分:0)
这里没有任何花哨或模糊的问题,问题是 如何帮助您执行多个增量,如下一行? 你正在调用increment()方法三次,就这么简单,increment方法id返回一个只有类的对象才能再次调用increment方法。因此,如果x是Leaf类型的对象,则x.increment也是Leaf类型的对象(返回类型为Incre),因此可以再次调用increment方法。每次调用increment方法时,我们都将i递增1。 如果还不清楚,请告诉我。