问题
I get the recursive construct overflow invocation error at the four public tuna parts (parts=maybe a class or something else?). It worked on the tutorial but not for me and can't seem to see where
public class tuna {
private int hour;
private int minute;
private int second;
public tuna() {
this(0,0,0); //default
}
public tuna(int h){
this(h,0,0); //with hours input
}
public tuna(int h, int m){
this(h,m,0); //with hours and minutes
}
public tuna(int h, int m, int s){
this(h,m,s); //with hours, minutes and seconds
}
回答1:
You're doing a recursive call here:
public tuna(int h, int m, int s){
this(h,m,s); //with hours, minutes and seconds
}
You should set your private members in this constructor. It should be something like:
public tuna(int h, int m, int s){
this.h = h; //with hours, minutes and seconds
this.m = m;
this.s = s;
}
回答2:
public tuna(int h, int m, int s){
this(h,m,s); //with hours, minutes and seconds
}
Insead of this(h,m,s); use setTime(h,m,s);
It should be:
public class tuna {
private int hour;
private int minute;
private int second;
public tuna() {
this(0,0,0); //default
}
public tuna(int h){
this(h,0,0); //with hours input
}
public tuna(int h, int m){
this(h,m,0); //with hours and minutes
}
public tuna(int h, int m, int s){
setTime(h,m,s); //with hours, minutes and seconds
}
// define setTime method below
来源:https://stackoverflow.com/questions/24284257/recursive-constructor-invocation-error-cant-find-solution