还是似懂非懂"用return this 返回的是一个Leaf 的对象。就象用Leaf leaf = new Leaf(); 创建一个对象一样。" 是指执行到return this 时创建了一个对象吗?return this 返回一个指向Leaf类型的引用?x是一个指向Leaf类型的引用, x.increment()执行完后又返回一个指向Leaf类型的引用,所以还可以.increment() ?对象都可以看成是一个指向某种类型的引用吗?
如果我没记错的话,这是一道THINKING JAVA里的一个例子,好象是在第四章吧!x是不一个指向Leaf类型的引用而是一个指向Leaf对象的引用,就是Leaf类的 实例。 this 返回的是当前调用他的那个实例的引用。就象sunni(死猪)说的一样。就好想是 x=x 样!
对没错,记忆力真好编译器里有这样一个转换: Leaf.increment(x), return this 中的 this 指的是不是这个 x ?
i++;
return this;
}
这个方法的返回值是 当前类的对象,所以用return this 返回的是一个Leaf 的对象。就象用Leaf leaf = new Leaf(); 创建一个对象一样。
对于这个类(Leaf) 的成员方法increment() ,print() 你可以用leaf.increment(),和leaf.print()来调用,所以你就可以用
x.increment().increment().increment().print();
来调用
实例。 this 返回的是当前调用他的那个实例的引用。就象sunni(死猪)说的一样。就好想是 x=x 样!