Hallo,
ich habe folgende Aufgabenstellung und ich wollte fragen, ob jemand auf meine Ergebnisse raufschauen kann, ob diese richtig sind.
Die Darstellung des Datums ist weltweit nicht einheitlich. Während es zwar einen internationalen Standard (ISO 8601) gibt, der das Format JJJJ-MM-TT vorschlägt, wird praktisch aber z.B. in Deutschland das Format TT.MM.JJJJ sowie (hauptsächlich) in den Vereinigten Staaten das Format MM/TT/JJJJ verwendet.
Schreiben Sie eine abstrakte Klasse Date, welche die streng gekapselten Ganzzahlattribute (int) day, month und year enthält. Die Klasse soll einen vollständig parametrisierten Konstruktor (mit Argumenten in der zuvor angegebenen Reihenfolge) haben, der die Attribute initialisiert.
Für jedes Attribut soll es eine, exakt nach Java-Konvention benannte, get-Methode geben.
Es soll eine öffentliche, abstrakte Methode formatString ohne Argumente, mit Rückgabetyp String geben.
Die toString-Methode soll überschrieben werden und den Rückgabewert von formatString zurückgeben.
Es soll eine statische Methode fill geben, die zwei Ganzzahlwerte (int) übergeben bekommt. Das erste Argument repräsentiert eine Datumszahl (zu Beispiel den Tag oder den Monat), das zweite Argument die Anzahl an Stellen auf die diese in einer Darstellung als Zeichenkette, falls nötig, aufgefüllt werden soll. Bsp.: der Methoden-Aufruf fill(4,2) soll den String "04" zurückgeben.
Es soll drei von Date abgeleitete Klassen ISODate, GermanDate und AmericanDate geben. Jede dieser Klassen soll einen Konstruktor besitzen, der den Konstruktor von Date aufruft. Jede der Klassen muss die Methode formatString implementieren, die eine Zeichenkette entsprechend der anfänglich gezeigten Darstellung zurückgibt.
Testen Sie Ihre Implementierungen in einer Klasse TestDate. Es soll eine statische Methode makeDates geben, die Werte für day, month und year übergeben bekommt und ein Date-Array zurückgibt, das je ein Objekt für ISODate, GermanDate und AmericanDate (in dieser Reihenfolge) enthält. In der main-Methode soll die makeDates-Methode mit Werten für den 25. Mai 2001 aufgerufen werden. Die Elemente des erhaltenen Arrays sollen zeilenweise ausgegeben werden.
Hinweis: Die Klassen "Date", "ISODate", "GermanDate" und "AmericanDate" müssen als einzelne .java-Dateien hochgeladen werden. Die Klasse "TestDate" muss ins Antwortfeld geschrieben werden. Die Reihenfolge beim Datum nach ISO ist in dieser Aufgabe invertiert, "ISODate" soll also, wie im Beispiel, im Format TT-MM-JJJJ dargestellt werden.
Code TestDate
Sind meine Codes so richtig?
Ich würde mich über jede Hilfe freuen
ich habe folgende Aufgabenstellung und ich wollte fragen, ob jemand auf meine Ergebnisse raufschauen kann, ob diese richtig sind.
Die Darstellung des Datums ist weltweit nicht einheitlich. Während es zwar einen internationalen Standard (ISO 8601) gibt, der das Format JJJJ-MM-TT vorschlägt, wird praktisch aber z.B. in Deutschland das Format TT.MM.JJJJ sowie (hauptsächlich) in den Vereinigten Staaten das Format MM/TT/JJJJ verwendet.
Schreiben Sie eine abstrakte Klasse Date, welche die streng gekapselten Ganzzahlattribute (int) day, month und year enthält. Die Klasse soll einen vollständig parametrisierten Konstruktor (mit Argumenten in der zuvor angegebenen Reihenfolge) haben, der die Attribute initialisiert.
Für jedes Attribut soll es eine, exakt nach Java-Konvention benannte, get-Methode geben.
Es soll eine öffentliche, abstrakte Methode formatString ohne Argumente, mit Rückgabetyp String geben.
Die toString-Methode soll überschrieben werden und den Rückgabewert von formatString zurückgeben.
Es soll eine statische Methode fill geben, die zwei Ganzzahlwerte (int) übergeben bekommt. Das erste Argument repräsentiert eine Datumszahl (zu Beispiel den Tag oder den Monat), das zweite Argument die Anzahl an Stellen auf die diese in einer Darstellung als Zeichenkette, falls nötig, aufgefüllt werden soll. Bsp.: der Methoden-Aufruf fill(4,2) soll den String "04" zurückgeben.
Es soll drei von Date abgeleitete Klassen ISODate, GermanDate und AmericanDate geben. Jede dieser Klassen soll einen Konstruktor besitzen, der den Konstruktor von Date aufruft. Jede der Klassen muss die Methode formatString implementieren, die eine Zeichenkette entsprechend der anfänglich gezeigten Darstellung zurückgibt.
Testen Sie Ihre Implementierungen in einer Klasse TestDate. Es soll eine statische Methode makeDates geben, die Werte für day, month und year übergeben bekommt und ein Date-Array zurückgibt, das je ein Objekt für ISODate, GermanDate und AmericanDate (in dieser Reihenfolge) enthält. In der main-Methode soll die makeDates-Methode mit Werten für den 25. Mai 2001 aufgerufen werden. Die Elemente des erhaltenen Arrays sollen zeilenweise ausgegeben werden.
Hinweis: Die Klassen "Date", "ISODate", "GermanDate" und "AmericanDate" müssen als einzelne .java-Dateien hochgeladen werden. Die Klasse "TestDate" muss ins Antwortfeld geschrieben werden. Die Reihenfolge beim Datum nach ISO ist in dieser Aufgabe invertiert, "ISODate" soll also, wie im Beispiel, im Format TT-MM-JJJJ dargestellt werden.
Code TestDate
Java:
public class TestDate {
public static void main(String[] args) {
// gebe korrektes Datum vor
System.out.println("Erzeuge Objekte und gebe korrektes Datum in den "+"drei Formaten aus:");
int tag = 01;
int monat = 04;
int jahr = 2013;
// erzeuge Instanzen der drei Klassen und gebe die formatierten Daten aus
GermanDate datum_de = new GermanDate(tag, monat, jahr);
System.out.println("Deutsche Formatierung: "+datum_de.formatiere()
);
AmericanDate datum_us = new AmericanDate(tag, monat,
jahr);
System.out.println("Amerikanische Formatierung: "+datum_us.
formatiere());
ISODatum datum_iso = new ISODatum(tag, monat, jahr);
System.out.println("ISO−Formatierung: "+datum_iso.formatiere());
System.out.println(); // Leerzeile
// gebe falsches Datum vor
System.out.println("Erzeuge Objekte und gebe falsches Datum in den "+"drei Formaten aus:");
tag = 32 ;
monat = 13;
jahr = 1994;
// erzeuge Instanzen der drei Klassen und gebe die formatierten Daten aus
datum_de = new DeutschesDatum(tag, monat, jahr);
System.out.println("Deutsche Formatierung: "+datum_de.formatiere()
);
datum_us = new AmerikanischesDatum(tag, monat, jahr);
System.out.println("Amerikanische Formatierung: "+datum_us.
formatiere());
datum_iso = new ISODatum(tag, monat, jahr);
System.out.println("ISO−Formatierung: "+datum_iso.formatiere());
}
}
Sind meine Codes so richtig?
Ich würde mich über jede Hilfe freuen