我目前正在用java自学,看着新波士顿的vids。我编写了一个构造函数就像他的代码,但我得到一个错误。无法正确使用构造函数 - 构造函数发生错误
这里是我完整的代码在another.java
注:上面的截图及代码下没有类同名,我只是改变它,因为它让我感到困惑。希望你能理解
public class class2{
private int hour;
private int minutes;
private int second;
public class2(){
this(0,0,0); /** It says "recursive constructor incovation class2(int,int,int)" */
}
public class2(int h){
this(h,0,0); /** It says "recursive constructor incovation class2(int,int,int)" */
}
public class2(int h, int m){
this(h,m,0); /** It says "recursive constructor incovation class2(int,int,int)" */
}
public class2(int h, int m, int s){
this(h,m,s); /** It says "recursive constructor incovation class2(int,int,int)" */
}
public void setTime(int h, int m, int s){
setHour(h);
setMinute(m);
setSecond(s);
}
public void setHour(int h){
hour = ((h >=0 && h <24) ? h : 0);
}
public void setMinute(int m){
minutes = ((m >=0 && m <60) ? m : 0);
}
public void setSecond(int s){
second = ((s >=0 && s <60) ? s : 0);
}
public int getHour(){
return hour;
}
public int getMinute(){
return minutes;
}
public int getSecond(){
return second;
}
public String printTime(){
return String.format("%02d:%02d:%02d:", getHour(),getMinute(),getSecond());
}
}
它说的错误是 “递归构造incovation的Class2(INT,INT,INT)” 如果你有一个答案,请解释一下也。谢谢!
这就是当您调用自身的构造函数时发生的情况。至少编译器足够聪明,可以警告你,而不是让程序在运行时因堆栈溢出而崩溃。 – azurefrog