this 指的是当前类的对象.

解决方案 »

  1.   

    x.increment()返回一个x对象的引用,所以可以x.increment().increment().increment().print();这样一直调用下去
      

  2.   

    "this 指的是当前类的对象." 还是不懂,"当前类" 指的是 Leaf 吗?这个 "当前类的对象" 是什么时候产生的?为什么要产生?为什么 x.increment()返回当前对象x的引用,就可以x.increment().increment().increment().print();这样一直调用下去了?可以描述一下这条语句执行的过程吗?
      

  3.   

    Leaf increment() {
    i++;
    return this;
    }
    这个方法的返回值是 当前类的对象,所以用return this 返回的是一个Leaf 的对象。就象用Leaf leaf = new Leaf(); 创建一个对象一样。
    对于这个类(Leaf) 的成员方法increment() ,print() 你可以用leaf.increment(),和leaf.print()来调用,所以你就可以用
    x.increment().increment().increment().print();
    来调用
      

  4.   

    还是似懂非懂"用return this 返回的是一个Leaf 的对象。就象用Leaf leaf = new Leaf(); 创建一个对象一样。" 是指执行到return this 时创建了一个对象吗?return this 返回一个指向Leaf类型的引用?x是一个指向Leaf类型的引用, x.increment()执行完后又返回一个指向Leaf类型的引用,所以还可以.increment() ?对象都可以看成是一个指向某种类型的引用吗?
      

  5.   

    如果我没记错的话,这是一道THINKING JAVA里的一个例子,好象是在第四章吧!x是不一个指向Leaf类型的引用而是一个指向Leaf对象的引用,就是Leaf类的
    实例。 this 返回的是当前调用他的那个实例的引用。就象sunni(死猪)说的一样。就好想是 x=x 样!
      

  6.   

    对没错,记忆力真好编译器里有这样一个转换: Leaf.increment(x), return this 中的 this 指的是不是这个 x ?
      

  7.   

    好像茅塞顿开,是不是这样:Leaf.increment(x)Leaf.increment( Leaf.increment(x) )Leaf.increment( Leaf.increment(Leaf.increment(x)) )Leaf.print( Leaf.increment(Leaf.increment(Leaf.increment(x))) )