java高手帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/05/31 07:38:53
public class Leaf {
private int i = 0;
public Leaf increment() {
i++;
return this;
}
public void print() {
System.out.println("i = " + i);
}
public static void main(String[] args) {
Leaf x = new Leaf();
x.increment().increment().increment().print();
}
}
第二个Leaf是什么意思啊
能不能解释一下啊

这个应该看得懂(一个无返回值的increment方法):
public void increment() {}

这个也应该看得懂(一个返回int型的increment方法):
public int increment() { return 10;}

这个跟上面的差不多,返回当前Leaf对象!
public Leaf increment() { return this;}
this是指当前对象!

public Leaf increment()
这里Leaf是类型,返回一个值相当于返回一个自己的实例对象

public Leaf increment()
中的leaf为leaf类的返回类型,写在leaf类中,说明是返回自己的类型,
c++的程序员应该注意,在C++中,这个语句是不合法的,C++类中的函数不能够返回自身所在的类派生出的对象实例,只能返回对象的引用或指针,即上例应改为:
public:
leaf *increment();

public:
leaf &increment();

扬州的希望说的简洁明了。。。

Leaf是一个类,它的方法increament()
返回一个自己的实例。
在main函数中产生一个Leaf的实例x。
它调用自己的increament()返回一个修改了i的自己的实例,
然后还可以再调用自己的方法increament()