Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这在Java中的使用_Java - Fatal编程技术网

这在Java中的使用

这在Java中的使用,java,Java,增量方法调用在以下代码中如何工作: 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().incremen

增量方法调用在以下代码中如何工作:

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();
  }
}

它按一个对象字段
int i
递增,然后返回对已调用
increment()
方法的对象的引用,因此您可以在点之后再次调用
increment()
。为了同一片叶子

这是一个例子

通过返回
this
,可以在链中对原始对象实例的实例方法进行后续调用

每次调用
increment()
都会将
i
的值增加1,因为该调用作用于原始对象实例


最后,对原始对象实例调用
print()

x.increment().increment().increment().print();
这是我们的方法:

Leaf increment() {
    i++;
    return this;
}
这叫做方法链接。让我们看看如果我们不返回这个
会发生什么:

void increment() {
    i++;
}
代码如下所示:

x.increment();
x.increment();
x.increment();
x.print();

看到了吗?返回对象并链接方法调用更简单。

@chieftwoppencils愚蠢的拼写错误:P@AbdulRahman再加上这个答案:如果你听到“流畅的界面”这个术语,这就是正在使用的技术。