我真的是新的編程,我正在爲學校的java作業,我知道我得到了大部分的我寫錯了代碼,但這是我第一次嘗試這樣的事情。獲取「在線程中的異常」主「java.lang.StackOverflowError」和很多錯誤
我想麻煩拍攝,但我得到的錯誤
異常線程 「main」 java.lang.StackOverflowError的
在a07.Time。(Time.java:27)
在a07.Time。(Time.java:27)
在a07.Time。(Time.java:27)
這會持續相當長的一段時間。
我希望有人能告訴我問題的原因,所以我可以開始修復。
Public class Time {
private int hour;
private int minute;
public static final int MIN_HOUR = 0;
public static final int MIN_MINS = 0;
public Time(int hours, int mins) {
minute = mins;
hour = hours;
Time t = new Time(hour, minute);
t.fixME();
}
private void fixME() {
int minEx = minute/60;
int minLeft = minute % 60;
int newHour = hour + minEx;
minute = minLeft;
hour = newHour;
if (minute < MIN_MINS) {
int subHour = hour - 1;
int minNew = minute + 60;
hour = subHour % 24;
minute = minNew;
if (hour < MIN_HOUR) {
int hourUp = hour + 24;
hour = hourUp;
}
}
}
public int getHour() {
return hour;
}
public int getMinute() {
return minute;
}
public Time addMinutes(int mins) {
int newMinute = minute + mins;
minute = newMinute;
Time g = new Time(hour, mins);
return g;
}
public void print() {
if (hour == 0) {
System.out.printf("12:" + "%02f", minute + " AM");
}
if (hour != 0 && hour < 10) {
System.out.printf("0" + hour + ":" + "%02f", minute + " AM");
}
if (hour >= 10 && hour < 12) {
System.out.printf(hour + ":" + "%02f", minute + " AM");
}
if (hour >= 12) {
int pmHour = hour - 12;
if (pmHour == 0) {
System.out.printf("12:" + "%02f", minute + " PM");
} else if (pmHour < 12) {
System.out.printf(pmHour + ":" + "%02f", minute + " PM");
}
}
}
}
對不起,它的格式不是很好。 任何想法? 謝謝。
不要在你的構造做這個'時刻t5 =新時間(小時,分鐘);' –