Erstellen Sie ein UML-Klassendiagramm für die in dieser Aufgabe zu erstellende Klasse.
Erweitern Sie die Klasse Datum aus Blatt 06, Aufgabe 1 unter Verwendung von Klasse Zeit aus
Aufgabe 4 in folgender Weise:
Der initialisierende Konstruktor soll eine Exception werfen, falls eines der Argumente einen
ungültigen Wert hat. Die Fehlerbeschreibung soll folgende Form haben:
"ungueltiger Wert fuer JMT: Wert"
Darin steht JMT entsprechend für Jahr, Monat oder Tag und Wert für den ungültigen Wert.
Stellen Sie einen Konstruktor bereit, der ein Datum-Objekt als Argument annimmt und die
Instanz als Kopie davon erzeugt.
setzeFormatRF soll eine Exception werfen, falls das Argument einen ungültigen Wert hat. Die
Fehlerbeschreibung soll folgende Form haben:
"ungueltiger Wert fuer Format-Reihenfolge: \"Zeichenkette\""
Darin steht Zeichenkette für den ungültigen Wert; '\"' erlaubt, ein doppeltes Anführungszei-
chen innerhalb eines Zeichenkettenliterals darzustellen.
Wenn Methode setzeFormatTZ als Argument das Zeichen '0' erhält (unsinnig als Trennzeichen), sollen Aufrufe von toString für alle Datum-Objekte fortan das Datum in ausgeschriebener
Form als Zeichenkette liefern.
Z.B. soll toString das Ergebnis "15. August 1970" liefern, wenn das Trennzeichen als '0' und
die Reihenfolge als "tmj" gewählt worden sind (und das Datum den entsprechenden Wert hat).
Hat die Reihenfolge den Wert "mtj", liefern toString das Ergebnis "August 15. 1970".
Die Methode setzeFormatTZ soll eine Exception werfen, falls das Argument eine andere Ziffer
als '0' ist. Die Fehlerbeschreibung soll folgende Form haben:
"ungueltiger Wert fuer Format-Trennzeichen: \'Ziffer\'"
Darin steht Ziffer für den ungültigen Wert; '\'' erlaubt, ein einfaches Anführungszeichen
innerhalb eines Zeichenliterals darzustellen.
Hinweis: Bestimmen Sie in toString erst, wie die einzelnen Darstellungen von Jahr, Monat,
Tag und Trennzeichen als Zeichenkette aussehen. Legen Sie dann fest, in welcher Reihenfolge sie
anzuordnen sind.
Sofern möglich, sollten Methoden Klassenmethoden sein.
Es sollen nur die Methoden (potentiell) eine Exception werfen, für die tatsächlich ein Fehler möglich
ist. Wird aus einer Methode, die keine Exception wirft, eine Methode aufgerufen, die eine werfen
könnte, muss dieser Aufruf in einen Handler mit leerem catch-Block gesetzt werden, damit keine
throws-Klausel erforderlich ist.
Klasse Zeit wird im Praktomat bereitgestellt, ist also nicht einzureichen.
Aufgabe 5 [Programmierung – bewertet]
Erstellen Sie ein UML-Klassendiagramm für die in dieser Aufgabe zu erstellende Klasse.
Erweitern Sie die Klasse Datum aus Blatt 06, Aufgabe 1 unter Verwendung von Klasse Zeit aus Aufgabe 4 in folgender Weise:
Der initialisierende Konstruktor soll eine Exception werfen, falls eines der Argumente einen ungültigen Wert hat. Die Fehlerbeschreibung soll folgende Form haben:
"ungueltiger Wert fuer JMT: Wert"
Darin steht JMT entsprechend für Jahr, Monat oder Tag und Wert für den ungültigen Wert.Stellen Sie einen Konstruktor bereit, der ein Datum-Objekt als Argument annimmt und die Instanz als Kopie davon erzeugt.
setzeFormatRF soll eine Exception werfen, falls das Argument einen ungültigen Wert hat. Die Fehlerbeschreibung soll folgende Form haben:
"ungueltiger Wert fuer Format-Reihenfolge: \"Zeichenkette\""
Darin steht Zeichenkette für den ungültigen Wert; '\"' erlaubt, ein doppeltes Anführungszei- chen innerhalb eines Zeichenkettenliterals darzustellen.Wenn Methode setzeFormatTZ als Argument das Zeichen '0' erhält (unsinnig als Trennzeichen), sollen Aufrufe von toString für alle Datum-Objekte fortan das Datum in ausgeschriebener Form als Zeichenkette liefern. Z.B. soll toString das Ergebnis "15. August 1970" liefern, wenn das Trennzeichen als '0' und die Reihenfolge als "tmj" gewählt worden sind (und das Datum den entsprechenden Wert hat). Hat die Reihenfolge den Wert "mtj", liefern toString das Ergebnis "August 15. 1970". Die Methode setzeFormatTZ soll eine Exception werfen, falls das Argument eine andere Ziffer als '0' ist. Die Fehlerbeschreibung soll folgende Form haben:
"ungueltiger Wert fuer Format-Trennzeichen: \'Ziffer\'"
Darin steht Ziffer für den ungültigen Wert; '\'' erlaubt, ein einfaches Anführungszeichen innerhalb eines Zeichenliterals darzustellen. Hinweis: Bestimmen Sie in toString erst, wie die einzelnen Darstellungen von Jahr, Monat, Tag und Trennzeichen als Zeichenkette aussehen. Legen Sie dann fest, in welcher Reihenfolge sie anzuordnen sind.Sofern möglich, sollten Methoden Klassenmethoden sein.
Es sollen nur die Methoden (potentiell) eine Exception werfen, für die tatsächlich ein Fehler möglich ist. Wird aus einer Methode, die keine Exception wirft, eine Methode aufgerufen, die eine werfen könnte, muss dieser Aufruf in einen Handler mit leerem catch-Block gesetzt werden, damit keine throws-Klausel erforderlich ist.
Klasse Zeit wird im Praktomat bereitgestellt, ist also nicht einzureichen.