代码如下:
public class Leaf
{
  int i=0;
  Leaf increment()
  {
    i++;
    return 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().increment().increment().print();"执行的过程是怎么样的,是先x.increment()返回得一个X,然后继续x.increment()吗?执行三次,这时候i=3,输出i?另一个问题:
public class OverloadingOrder
{
  static void print(String s, int i)
  {
     System.out.println("String:"+s+",int:"+i);
  }
  static  void print(int i, String s)
  {
    System.out.println("int:"+i+",String:"+s);
  }
  public static void main(String []args)
  {
    print("String first",11);
    print(99,"Int first");
  }
}
中的 print("String first",11)和print(99,"Int first");谁能给我解释一下!

解决方案 »

  1.   

    第一个问题就是让i连续加三次之后再打印出来,要注意increament()返回的是对象自身
    第二个问题就是调用不同的函数啊,注意参数的顺序
      

  2.   

    第一题:
    是先x.increment()返回得一个X,然后继续x.increment()吗?
    是,就是返回自己,相当于连续执行3次x.increment()方法。答案:应该是3第二题:static void print(String s, int i)
      {
         System.out.println("String:"+s+",int:"+i);
      }
      static  void print(int i, String s)
      {
        System.out.println("int:"+i+",String:"+s);
      }
      这是对print方法的重载。
     这2个方法与系统自带的print方法是三个的不同的方法,虽然方法名相同,但参数的类型和顺序不同,所以是三个的不同的方法。
      

  3.   

    x.increment().increment().increment().print();
    x.increment()返回x
    第一次
    x.increment().increment().print();
    2x.increment().print();
    3
    x.print();
    每次i 都加1