java问题,能编译却不能运行,小白求详解
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
------解决方案--------------------可以运行哦,我试过了,输出结果:
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
------解决方案--------------------最后加上System.in.readline();吧。让它停一下。可能是一下子就结束了。
------解决方案--------------------我在想你这些构造函数为什么都是默认的保护类型的,这样如果main函数不在这个类中怎么new 一个这个类的对象出来呢
------解决方案--------------------System.out.println(tt0.increment().increment().increment().i);
可能你没看仔细这句是将tt0的变量i自增三次后输出,
------解决方案--------------------你在仔细看看你的题吧!