S
steffen
Gast
"guten" morgen :bahnhof:
ich habe folgendes problem und komme net weiter: ich habe ein klasse datum geschrieben und soll nun dazu
eine ausnahmebehandlung machen. vorweg: ich weiß, es gibt schon viele beiträge dazu und sogar code-schnipsel, aber die helfen mir net wirklich weiter momentan, da ich mit der objektorientierung etc. eh noch meine probleme habe. also im anhang meine klasse datum und hier die aufgabenstellung: ich soll drei ausnahmeklassen definieren (?). eine für die eingabe eines falschen tages, eine bei monat/und jahr. jede dieser klassen soll den eingegebenen falschen wert speichern können und eine zugriffsmethode darauf haben (?). vererbung soll benutzt werden, da sich nur die namen unterscheiden (?).
meine klasse:
so..nun werde ich sicher meine abfrage-methode erstmal ändern müssen in 3 abragen (tag, monat, jahr) oder? und dann würde ich etwas wie eine WrongDayException, WrongMonthException und WrongYearException brauchen? Ich Verstehe nicht, wie ich diese 3 "Ausnahmeklassen" definieren soll und wo. Ich muss sicher auch irgendwie eine Ausnahme "werfen", nur an welcher Stelle? Letzte Frage: muss ich try-catch benutzen und wenn ja wo?
Da ich die Aufgabe bald abgeben muss, wäre ich sehr dankbar für eure hilfe
steff
ich habe folgendes problem und komme net weiter: ich habe ein klasse datum geschrieben und soll nun dazu
eine ausnahmebehandlung machen. vorweg: ich weiß, es gibt schon viele beiträge dazu und sogar code-schnipsel, aber die helfen mir net wirklich weiter momentan, da ich mit der objektorientierung etc. eh noch meine probleme habe. also im anhang meine klasse datum und hier die aufgabenstellung: ich soll drei ausnahmeklassen definieren (?). eine für die eingabe eines falschen tages, eine bei monat/und jahr. jede dieser klassen soll den eingegebenen falschen wert speichern können und eine zugriffsmethode darauf haben (?). vererbung soll benutzt werden, da sich nur die namen unterscheiden (?).
meine klasse:
Code:
class Datum {
protected int tag = 0;
protected int monat = 0;
protected int jahr = 0;
public static void main(String[]args) {
System.out.println("Eingabe eines Datums!");
Datum d1 = setDatum();
ausgabeDat(d1);
System.out.println("Eingabe eines weiteren Datums zum Vergleich!");
Datum d2 = setDatum();
ausgabeDat(d2);
int differenz = d1.Vergleich(d2);
ausgabeDiff(differenz);
}//main
//Konstruktor zum Erzeugen eines Datums
public Datum(int day, int month, int year) {
this.tag = day;
this.monat = month;
this.jahr = year;
}
//Methode zum Erzeugen eines neuen Objektes vom Typ Datum
static Datum setDatum() {
int day, month, year;
day = abfrage("Tag",1,31);
month = abfrage("Monat",1,12);
year = abfrage("Jahr",1900,2500);
return new Datum(day,month,year);
}
//Methode zum Abfragen & zum Einlesen eines Datums
static int abfrage(String wort,int anfang,int ende) {
int wert;
System.out.println("Bitte " + wort + " eingeben! Wert zwischen " +
anfang + " und " + ende + "!");
wert = EM02.liesInt();
while(wert < anfang || wert > ende) {
System.out.println("Falsche Eingabe! Bitte gueltigen Wert fuer "
+ wort + " eingeben!");
wert = EM02.liesInt();
}
return wert;
}
//Methode um Datum für Vergleich zu holen
public int getJahr() {
return this.jahr;
}
//Methode zur Ausgabe von Eingabedatum
static void ausgabeDat(Datum date){
System.out.println("Das Datum lautet: " + date.toString() + "\n");
}
//Methode zur Ausgabe der Jahresdifferenz 2er Eingabedaten
static void ausgabeDiff(int differenz) {
System.out.println("Es liegen " + differenz + " Jahre zwischen den Daten");
System.out.println();
}
//Methode toString zum Erzeugen der Ausgabeform TT.MM.JJJJ
public String toString() {
return this.tag + "." + this.monat + "." + this.jahr;
}
//Methode zum Vergleich zweier Eingabedaten
public int Vergleich(Datum neu) {
int diffJahr = this.jahr - neu.getJahr();
if(this.jahr > neu.getJahr()) {
return diffJahr;
} else {
return -diffJahr;
}
}
}//class Datum2
so..nun werde ich sicher meine abfrage-methode erstmal ändern müssen in 3 abragen (tag, monat, jahr) oder? und dann würde ich etwas wie eine WrongDayException, WrongMonthException und WrongYearException brauchen? Ich Verstehe nicht, wie ich diese 3 "Ausnahmeklassen" definieren soll und wo. Ich muss sicher auch irgendwie eine Ausnahme "werfen", nur an welcher Stelle? Letzte Frage: muss ich try-catch benutzen und wenn ja wo?
Da ich die Aufgabe bald abgeben muss, wäre ich sehr dankbar für eure hilfe
steff