public class Leaf {
  private int i = 0;
  Leaf increment()//这是个构造方法吗?怎么还有个increment?
   {
    i++;
    return this;//想知道这个this指的是什么?
  }
  void print() {
    System.out.println("i = " + i);
  }
  public static void main(String[] args) {
    Leaf x = new Leaf();
    x.increment().increment().increment().print();//这句怎么么运行?
  }

解决方案 »

  1.   

      Leaf increment()//这是个构造方法吗?怎么还有个increment?
      {
        i++;
        return this;//想知道这个this指的是什么?
      } 
    返回一个Leaf对象,i自增1
    this就是调用increment方法的这个对象本身。
      

  2.   

    Leaf increment()//这是个构造方法吗?怎么还有个increment? 
      { 
        i++; 
        return this;//想知道这个this指的是什么? 
      } 
    这是一个很普通的方法。
      

  3.   

      你意思是说Leaf increment() 方法名是increment,方法返回是leaf类型是吗?
     那最后的i是多少?怎么远行?
      

  4.   

    Leaf increment()//这是个构造方法吗?怎么还有个increment?不是,只是个普通的方法,返回类型为Leafreturn this;//想知道这个this指的是什么? 指的是当前的Leaf对象x.increment().increment().increment().print();//这句怎么么运行? 调用increment方法3次,最后打印结果
      

  5.   

    用Thinking in Java作为入门书了?
      

  6.   

    指的是当前的Leaf对象  能在说清楚点吗?
       返回leaf类型,这个类型就是x吗?
      

  7.   

    public class Leaf { 
      private int i = 0; 
      Leaf increment()// 这个不是构造方法,只是一个返回类型为 Leaf 的普通方法。
      { 
        i++; 
        return this;// 这个this返回的就是调用该方法的引用
      } 
      void print() { 
        System.out.println("i = " + i); 
      } 
      public static void main(String[] args) { 
        Leaf x = new Leaf(); 
        x.increment().increment().increment().print();// x.increment() 返回的是x ,该对象的属性i加一。往后类推! 
      }
      

  8.   

    7楼的this返回的是该方法的引用那不就是x吗?
      

  9.   

    对,就是x,最后那句相当于
    x.increment();
    x.increment();
    x.increment();
    x.print();
      

  10.   

    这是正确的。建议楼主看一些java基础的书。不要钻牛角尖。