Hallo und zwar hab ich folgende Aufgabe die ich nicht ganz verstehe bzw. es ganz hilfreich wäre wenn es mir jemand erklärt. Wie nutze z.B. public boolean jährtSichHeute() und muss ich es dann mit public boolean hatHeuteGeburtstag() vetgleichen? Schonmal danke im vorraus.
Ihre Urgroßmutter hat mit großer Begeisterung vernommen, dass Sie jetzt
Programmieren können. Da sie in letzter Zeit ein wenig vergesslich geworden ist,
wünscht sie sich von Ihnen ein Programm, das ihr erlaubt, die Geburtstage ihrer
zahlreichen Bekannten zu verwalten und das Sie darauf hinweist, welche
Bekannten gerade Geburtstag haben. Diesen Wunsch wollen Sie natürlich gerne
erfüllen. Sie beginnen deshalb sofort damit, ein Java-Programm für einen
Geburtstagskalender zu schreiben. Dazu gehen Sie in folgenden Schritten vor:
a) Definieren Sie eine Klasse Datum, die eine Datumsangabe mit Tag, Monat und
Jahr realisiert. Die Klasse hat folgende öffentliche Komponenten:
public Datum(int tag, int monat, int jahr)
Konstruktor, der ein Datum mit den angegebenen Werten erzeugt.
public String toString()
Wandelt das Datum in eine Zeichenkette um. Der Monatsname soll dabei
ausgeschrieben werden, z.B. in der Form "16. Juni 2004".
public boolean jährtSichHeute()
Die Methode liefert true, falls sich das Datum heute jährt, d.h. Tag und
Monat des Datums mit Tag und Monat des aktuellen Datums
übereinstimmen. Das aktuelle Datum können Sie in Java folgendermaßen
bestimmen:
java.util.Calendar cal = new java.util.GregorianCalendar();
int jahr = cal.get(java.util.Calendar.YEAR);
int monat = 1 + cal.get(java.util.Calendar.MONTH);
int tag = cal.get(java.util.Calendar.DAY_OF_MONTH);
b) Definieren Sie eine Klasse Person, die die Daten einer Person beschreibt – und
zwar Name, Geburtsdatum und Geschlecht. Die Klasse soll folgende öffentliche
Komponenten besitzen:
public Person(String name, Datum geburtstag, boolean
istWeiblich))
Konstruktur, der ein Personen-Objekt mit den angegebenen Daten erzeugt.
public String toString()
Wandelt Personendaten in einen String um, z.B. in der Form "Herr Meier,
geb. am 16. Juni 1982" bzw. "Frau Müller, geb. am 22. April 1984"
public boolean hatHeuteGeburtstag()
Liefert true, falls die Person am aktuellen Tag Geburtstag hat (d.h. das
Geburtsdatum jährt sich am aktuellen Tag).
c) Implementieren Sie eine Klasse Geburtstagskalender, die ein Feld von Personen
verwaltet. Die Anzahl der Personen, die der Geburtstagskalender maximal
speichern kann, soll beim Erzeugen eines Geburtstagskalender-Objekts
angegeben werden können.
Anmerkung: Die Daten sollen nicht permanent in einer Datei gespeichert,
sondern nur im Hauptspeicher gehalten werden!.
Die Klasse soll folgende öffentliche Komponenten haben:
public Geburtstagskalender(int maxAnzahl)
Konstruktor, der einen Geburtstagskalender erzeugt, der maxAnzahl viele
Personen speichern kann.
public void eintragen(Person person)
Trägt die angegebene Person in den Kalender ein. Es wird nicht geprüft, ob
die Person bereits eingetragen ist. Ist im Kalender kein Platz mehr, soll eine
Fehlermeldung ausgegeben werden.
public void alleAusgeben()
Gibt alle eingetragenen Personen aus (mit System.out.println()).
public void geburtstagskinderAusgeben()
Gibt alle Personen aus, die gerade Geburtstag haben.
Zum Test Ihrer Klassen finden Sie bei den Aufgabenblättern eine Klasse
GeburtstagsUI als "User Interface" für den Geburtstagskalender, mit der Sie
Daten eintragen und abfragen können.
Programmieren können. Da sie in letzter Zeit ein wenig vergesslich geworden ist,
wünscht sie sich von Ihnen ein Programm, das ihr erlaubt, die Geburtstage ihrer
zahlreichen Bekannten zu verwalten und das Sie darauf hinweist, welche
Bekannten gerade Geburtstag haben. Diesen Wunsch wollen Sie natürlich gerne
erfüllen. Sie beginnen deshalb sofort damit, ein Java-Programm für einen
Geburtstagskalender zu schreiben. Dazu gehen Sie in folgenden Schritten vor:
a) Definieren Sie eine Klasse Datum, die eine Datumsangabe mit Tag, Monat und
Jahr realisiert. Die Klasse hat folgende öffentliche Komponenten:
public Datum(int tag, int monat, int jahr)
Konstruktor, der ein Datum mit den angegebenen Werten erzeugt.
public String toString()
Wandelt das Datum in eine Zeichenkette um. Der Monatsname soll dabei
ausgeschrieben werden, z.B. in der Form "16. Juni 2004".
public boolean jährtSichHeute()
Die Methode liefert true, falls sich das Datum heute jährt, d.h. Tag und
Monat des Datums mit Tag und Monat des aktuellen Datums
übereinstimmen. Das aktuelle Datum können Sie in Java folgendermaßen
bestimmen:
java.util.Calendar cal = new java.util.GregorianCalendar();
int jahr = cal.get(java.util.Calendar.YEAR);
int monat = 1 + cal.get(java.util.Calendar.MONTH);
int tag = cal.get(java.util.Calendar.DAY_OF_MONTH);
b) Definieren Sie eine Klasse Person, die die Daten einer Person beschreibt – und
zwar Name, Geburtsdatum und Geschlecht. Die Klasse soll folgende öffentliche
Komponenten besitzen:
public Person(String name, Datum geburtstag, boolean
istWeiblich))
Konstruktur, der ein Personen-Objekt mit den angegebenen Daten erzeugt.
public String toString()
Wandelt Personendaten in einen String um, z.B. in der Form "Herr Meier,
geb. am 16. Juni 1982" bzw. "Frau Müller, geb. am 22. April 1984"
public boolean hatHeuteGeburtstag()
Liefert true, falls die Person am aktuellen Tag Geburtstag hat (d.h. das
Geburtsdatum jährt sich am aktuellen Tag).
c) Implementieren Sie eine Klasse Geburtstagskalender, die ein Feld von Personen
verwaltet. Die Anzahl der Personen, die der Geburtstagskalender maximal
speichern kann, soll beim Erzeugen eines Geburtstagskalender-Objekts
angegeben werden können.
Anmerkung: Die Daten sollen nicht permanent in einer Datei gespeichert,
sondern nur im Hauptspeicher gehalten werden!.
Die Klasse soll folgende öffentliche Komponenten haben:
public Geburtstagskalender(int maxAnzahl)
Konstruktor, der einen Geburtstagskalender erzeugt, der maxAnzahl viele
Personen speichern kann.
public void eintragen(Person person)
Trägt die angegebene Person in den Kalender ein. Es wird nicht geprüft, ob
die Person bereits eingetragen ist. Ist im Kalender kein Platz mehr, soll eine
Fehlermeldung ausgegeben werden.
public void alleAusgeben()
Gibt alle eingetragenen Personen aus (mit System.out.println()).
public void geburtstagskinderAusgeben()
Gibt alle Personen aus, die gerade Geburtstag haben.
Zum Test Ihrer Klassen finden Sie bei den Aufgabenblättern eine Klasse
GeburtstagsUI als "User Interface" für den Geburtstagskalender, mit der Sie
Daten eintragen und abfragen können.