public class Leaf{
 int i;
 Leaf(int i){this.i = i;
  }
 Leaf increament(){
  i++;
  return this;
 }
 void print(){
 System.out.println("i = "+i);
  }
 public static void main(String[] args){
  Leaf leaf = new Leaf(8);
  leaf.intcreament().intcreament().print();//这句是什么意思??
 }
}

解决方案 »

  1.   

    leaf.increament().increament().print();是这个吧leaf.increament()返回的是一个Leaf类型的对象只是调用一次i值就加1呗
      

  2.   

      leaf.intcreament().intcreament().print();//这句是什么意思??
         楼主没有弄懂返回值啊, 
        leaf.intcreament()返回Leaf对象的引用,由于return this就是返回本身的
       对象引用,之后就一样了,最后调用print方法
      

  3.   

    leaf.increament()返回的一个leaf 后又调用了一次increament(),组后将其打印出来i=8,
    其实这句话可以转换为:
       Leaf leaf2=leaf.increament();
       Leaf leaf3=leaf2.increament();
       leaf3.print();
      

  4.   


    这个说法有问题。首先用带参构造函数生成一个对象,并且其值为8,在调用increament()方法时,i值增加1。可以看出其调用了两次,所以i值应该为10
      

  5.   

    这个其实2楼、4楼说的都是对的,具体的,你可以打印出来看看结果,如果运行时报错,那么你就先调用第一个increament()进行打印,看看什么状况,逐步分析,问题会更清楚。
      

  6.   

    this代表当前类,在这里也就是Leafleaf.intcreament().intcreament().print();上面这句代码调用两次intcreament()方法,每次调用方法后Leaf的成员变量i值加1,并且在返回此对象最终结果i=10
      

  7.   


    this指代当前对象,也就是Leaf
    return this; 返回的就是一个Leaf对象
    leaf.intcreament().intcreament().print();
    leaf.intcreament() 此时返回的是一个Leaf对象 此时调用了一个构造方法 i = 8 + 1
    leaf.intcreament().intcreament() 在上一步的基础上再调用一次intcreament() 也就是再调用一次构造方法 此时 i = 8 + 1 + 1 = 10
    leaf.intcreament().intcreament().print();在上一步的基础上 将结果i 打印出
    结果为 10
    不知这样解释楼主是否明白?
      

  8.   

    应该是先执行leaf.increament(),然后再this.increament(),最后print()。
      

  9.   

    在intcreament()里加打印看看效果你就明白了~
      

  10.   

    对次返回当前对象,前i 都加1,返回两次再做 print()方法,输出为10