Hallöchen,
bekomme folgende Fehlermeldung für meinen Code:
"Time.java:1: Time is not abstract and does not override abstract method compareTo(java.lang.Object) in java.langComparable
public class Time implements Comparable {
^
1 error"
Liegt das daran, dass ich noch kein Objekt erzeuge oder stimmt etwas Grundlegendes nicht mit meinem COde?
Und gleich noch eine Frage: das Programm soll beim Setzen der Zeit (Zeile 30-34) eine IllegalArgumentException auswerfen. Das müsste doch mit Zeile 8-19 abgefangen sein, oder muss ich das hier auch noch mal machen?
Bin dankbar für jede Hilfe!
bekomme folgende Fehlermeldung für meinen Code:
"Time.java:1: Time is not abstract and does not override abstract method compareTo(java.lang.Object) in java.langComparable
public class Time implements Comparable {
^
1 error"
Liegt das daran, dass ich noch kein Objekt erzeuge oder stimmt etwas Grundlegendes nicht mit meinem COde?
Und gleich noch eine Frage: das Programm soll beim Setzen der Zeit (Zeile 30-34) eine IllegalArgumentException auswerfen. Das müsste doch mit Zeile 8-19 abgefangen sein, oder muss ich das hier auch noch mal machen?
Bin dankbar für jede Hilfe!
Code:
public class Time implements Comparable {
private int
hour, // 0 .. 23
day, // 1 .. 31
month; // 1 .. 12
// allgemeiner Konstruktor
// Falls die Wertebereiche für die Attribute nicht eingehalten werden,
// wird eine IllegalArgumentException ausgeworfen.
public Time(int hour, int day, int month) {
this.hour = hour;
this.day = day;
this.month = month;
if (hour > 23 || hour < 0 || day > 31 || day < 0 || month > 12 || month < 0)
throw new IllegalArgumentException(
"ungültige Eingabe! Bitte überprüfen!" + "Stunde: "
+ hour +"Tag: "+ day + "Monat: "+ month);
}
// Standardkonstruktor
// Datum und Uhrzeit werden auf den 01.01., 00:00 Uhr eingestellt
public Time() {
hour = 0;
day = 1;
month = 1;
}
// die Zeit einstellen
// Falls die Wertebereiche für die Attribute nicht eingehalten werden,
// wird eine IllegalArgumentException ausgeworfen.
public void set(int hour, int day, int month) {
}
// liefert eine Zeichenkette, welche die Attributwerte enthält
public String toString() {
return "Datum: " + day + "." + month + "." + "Stunde" + hour + ":00";
}
// zur Implementierung der Schnittstelle java.lang.Comparable
// vergleicht das aktuelle Time-Objekt mit dem übergebenen Objekt o
// liefert einen Wert < 0, wenn das aktuelle Objekt kleiner als t ist
// > 0, wenn das aktuelle Objekt größer als t ist
// 0, wenn das aktuelle Objekt gleich t ist
// Laufzeitfehler, falls o nicht vom Typ Time ist
public int compareTo(Time o) {
int month2 = o.month;
int day2 = o.day;
int hour2 = o.hour;
//Fall1
if (month2 < month)
return -1;
//Fall2
if (month2 > month)
return 1;
//Fall3
if (month2 == month && day2 < day)
return -1;
//Fall4
if (month2 == month && day2 > day)
return 1;
//Fall5
if (month2 == month && day2 == day && hour2 < hour)
return -1;
//Fall6
if (month2 == month && day2 == day && hour2 > hour)
return 1;
//Fall7
return 0;
}
// vergleicht das aktuelle Time-Objekt mit dem übergebenen Objekt o
// liefert true, wenn das aktuelle Time-Objekt gleich o ist, sonst false
// Laufzeitfehler, falls o nicht vom Typ Time ist
public boolean equals(Object o) {
if (o == null)
return false;
if (this.month == 0 && this.day == 0 && this.hour == 0)
return true;
}
}