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();//这条语句
}
}
最后一条语句,那三个increment()都是怎么回事啊?
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();//这条语句
}
}
最后一条语句,那三个increment()都是怎么回事啊?
是写了一个方法,方法的返回值类型是 LEAF 类型的.
NEW 了一个LEAF对象以后,去执行类中定义的方法,使之在堆内存中定义的i加一.调用三次,I由0变成3.最后打印出来.
可以这么调用么?
这些也就是一些基本的面向对象知识.以后慢慢的就不会再想这些事情了。
这题有种递归的感觉,increment()返回的也是Leaf,所以increment()方法调用一次,i就+1,但操作的还是同一个对象x====
是重复调用
他返回的始终是this,即当前对象,使得 i++ 3次