我真的是新的编程,我正在为学校的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 =新时间(小时,分钟);' –