package test;
public class ThisTest{
 private int i=0;
   ThisTest(int i){
 this.i=i+1;
 System.out.println("Int constructor i——this.i:  "+i+"——"+this.i);
 System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));
 
 }
   ThisTest(String s){
 System.out.println("String constructor:  "+s);
 }
 
 ThisTest(int i,String s){
 this(s);
 //this(i);

 this.i=i++;
 System.out.println("Int constructor:  "+i+"/n"+"String constructor:  "+s);
 }
 public ThisTest increment(){
 this.i++;
 return this;
 }
 public static void main(String[] args){
 ThisTest tt0=new ThisTest(10);
 ThisTest tt1=new ThisTest("ok");
 ThisTest tt2=new ThisTest(20,"ok again!");

 System.out.println(tt0.increment().increment().increment().i);
 }
}java

解决方案 »

  1.   

    可以运行哦,我试过了,输出结果:
    Int constructor i——this.i:  10——11
    i-1:9this.i+1:12
    String constructor:  ok
    String constructor:  ok again!
    Int constructor:  21/nString constructor:  ok again!
    14
      

  2.   

    最后加上System.in.readline();吧。让它停一下。可能是一下子就结束了。
      

  3.   

    System.out.println(tt0.increment().increment().increment().i);最后这一句要不要输出的结果都一样额,对程序没有什么影响原因在哪?
      

  4.   

    我在想你这些构造函数为什么都是默认的保护类型的,这样如果main函数不在这个类中怎么new 一个这个类的对象出来呢
      

  5.   

    System.out.println(tt0.increment().increment().increment().i); 
    可能你没看仔细这句是将tt0的变量i自增三次后输出,