| Themen |
|
Aufgabe 1
Installieren Sie den Editor blueJ auf Ihrem System. Laden Sie Sich außerdem die Projekte Figuren, Zeichnung unf Laborkurs herunter. Beschäftigen Sie sich zu Hause noch einmal
mit diesen Projekten. Erzeugen Sie Objekte, rufen Sie Methoden
auf und machen Sie sich nocheinmal die eingeführten Begriffe an den Beispielen
klar. Eine Zusammenfassung der Stundeninhalte findet sich im Kapitel "Klassen und Objekte".
Aufgabe 2
Implementieren Sie folgende Verbesserungen am Projekt "Naiver Ticketautomat":
-
Sichern Sie den Ausdruck von Tickets so ab, dass nur noch Tickets gedruckt
werden, wenn genügend Geld eingeworfen wurde.
-
Sichern Sie die Methode geldEinwerfen so ab, dass nur gültige, sprich nicht
negative, Geldbeträge eingeworfen werden können.
-
Sorgen Sie dafür, dass zu viel eingeworfenes Geld nicht vom Automaten
"geschluckt" wird.
Benutzen Sie das bekannte if(...) {...} else {...} - Konstrukt zur
Absicherung. Geben Sie außerdem bei Fehlbedienung des Automaten entsprechende
Fehlermeldungen mittels System.out.println() auf der Konsole aus.
Schicken Sie mir die im Projektordner "Naiver Ticketauotmat" befindliche
Datei Ticketautomat.java mit dem Java-Quelltext der Klasse per Email.
Aufgabe 3
-
Fügen Sie dem Grundgerüst der Buchklasse aus Kapitel 2 zwei sondierende
Methoden hinzu - gibAutor und gibTitel -, die den jeweiligen Wert der
Datenfelder autor und titel (per return-Anweisung) zurückliefern.
-
Fügen Sie der Klasse Buch zwei Methoden autorAusgeben und titelAusgeben hinzu,
die die entsprechenden Datenfelder auf der Konsole ausgeben.
-
Fügen Sie ein weiteres Datenfeld seiten hinzu, das die Anzahl der Seiten eines
Buches speichert. Dieses Feld sollte vom Typ int sein und seinen Anfangswert
durch den einen Konstruktor bekommen, indem dieser neben buchautor und
buchtitel einen weiteren Parameter erhält. Fügen Sie auch eine entsprechende
Methode gibSeiten hinzu.
-
Fügen Sie der Klasse Buch eine Methode detailsAusgeben hinzu. Diese sollte den
Autor, den Titel und die Anzahl der Seiten auf der Konsole ausgeben. Es ist
Ihnen überlassen, wie Sie die Ausgabe formatieren.
-
Fügen Sie der Klasse Buch ein weiteres Datenfeld refNummer für eine
Referenznummer hinzu. Dieses Feld könnte beispielsweise eine eindeutige
Kennzeichnung in einer Bibliothek modellieren. Es sollte vom Typ String sein
und im Konstruktor mit einer leeren Zeichenkette ("") initialisiert werden, da
es seinen Wert nicht als Konstruktorparameter bekommen soll. Definieren Sie
stattdessen eine verändernde Methode mit der Signatur:
public void setzeRefNummer(String ref)
Im Rumpf dieser Methode sollte der Wert des Parameters dem Datenfeld
refNummer zugewiesen werden. Fügen Sie eine zugehörige Methode gibRefNummer
ein, mit deren Hilfe Sie testen können, ob die verändernde Methode korrekt
arbeitet.
-
Passen Sie Ihre Methode detailsAusgeben so an, dass Sie auch die
Referenznummer mit ausgibt. Allerdings soll sie nur dann ausgegeben werden,
wenn tatsächlich ein Wert eingegeben wurde - also wenn das Datenfeld eine
nichtleere Zeichenkette enthält. Falls das Datenfeld nicht gesetzt wurde,
geben Sie stattdessen "ZZZ" aus. Hinweis: Benutzen Sie die Methode length die
sich an jedem String-Objekt aufrufen lässt und die Anzahl der Zeichen der
Zeichenkette zurückliefert. Aufrufsyntax: autor.length() wobei autor eine
Variable vom Typ String ist.
-
Verändern Sie die Methode setzeRefNummer so, dass sie den Wert des Datenfeldes
nur ändert, wenn die übergebene Zeichenkette mindestens drei Zeichen lang ist.
Wenn der Parameter kürzer ist, lassen Sie eine Fehlermeldung ausgeben und das
Datenfeld unverändert.
-
Fügen Sie der Klasse Buch ein weiteres Datenfeld ausgeliehen hinzu. Es soll
einen Zähler halten, der angibt, wie häufig das Buch bereits ausgeliehen
wurde. Fügen Sie eine verändernde Methode ausleihen hinzu, die den Zähler bei
jedem Aufruf um eins erhöht. Fügen Sie eine Methode gibAusgeliehen hinzu, die
den Wert des neuen Datenfeldes als Ergebnis liefert. Erweitern Sie die Methode
detailsAusgeben so, dass auch die Information des neuen Felds ausgegeben wird.
Aufgabe 4
Modifizieren Sie die Anzeige unsere Digitaluhr so, dass sie die Tageszeit im
12-Stunden-Format mit angehängtem 'am'(ante meridiem: 0-11:59 Uhr) bzw. 'pm'
(post meridiem: 12-23:59 Uhr) anzeigt, also zum Beispiel statt 14:34 2:34pm.
Der Brite, der die 12-Stunden-Digitaluhr-Anzeige häufig verwendet, ersetzt die
Stunde 0 außerdem durch eine 12. Zum Beispiel ist 0:00 im 24-Stunden-Format
12:00am, 0:34 12:34am und schließlich 1:00 1:00am. Stunden werden also von 1
bis 12 gezählt.
Aufgabe 5
Simuliert werden soll ein Tennisspiel. Schreiben Sie ein Klasse, die zur
Speicherung von Daten über Tennisspieler dient. Neben persönlichen Daten,
sollten Sie auch Informationen über die Spielstärke eines Tennisspielers
speichern können, um später Parameter zu haben, anhand derer Sie einen
Gewinner ermitteln können. Entscheiden Sie selbst, welche sondierenden und
verändernden Methoden Sie implementieren wollen.
Schreiben Sie nun eine Klasse, die ein Tennisspiel modelliert. Der
Konstruktor soll zwei Objekte vom Typ Tennisspieler übergeben bekommen.
Implementieren Sie (unter anderem) eine Methode die anhand der gespeicherten
Parameter einen Sieger ermittelt. Die Anzahl der verlorenen bzw. gewonnenen
Spiele eines Spielers soll jeweils in einer Instanzvariablen des
Spielerobjektes gespeichert werden und Einfluss auf seine Spielstärke haben,
d.h. die Spielstärke soll anhand der Zahl der gewonnen bzw. verlorenen Spiele
ermittelt werden.
Aufgabe 6
Modellieren Sie die Kontoverwaltung einer Bank. Schreiben Sie dazu zunächst
eine Klasse Konto, die die Instanzvariablen name (Typ String), saldo (Typ
double oder float) und kontonummer (Typ int) besitzt und außerdem diese
Konstruktoren und Methoden. Kommentieren Sie ihre Klasse, sowie jede der
implementierten Methoden (siehe dazu das Kapitel Javadoc). Achten Sie auf
korrekte Bezeichner (Variablennamen fangen klein an, Klassennamen groß, keine
Umlaute benutzen). Aufgabe 7 Laden Sie sich das Notizbuch-Projekt herunter. Nehmen Sie folgende Änderungen an diesem Projekt vor:
- Verändern Sie die Methode notizenAusgaben() so, dass bei der Ausgabe der Wert der lokalen Variable i vor jeder Notiz ausgegeben wird. Zum Beispiel:
0 : Brot kaufen. 1 : Handy aufladen. 2 : John treffen.
- Verändern Sie Ihr Notizbuch so, dass Notizen beginnend mit 1 statt mit 0 nummeriert werden. Bedenken Sie dabei, dass das ArrayList-Objekt nach wie vor mit Indizes bei Null beginnend arbeitet, Sie aber in Ihrer Ausgabe mit 1 beginnen können. Beachten Sie, das zeigeNotiz und entferneNotiz angepasst werden müssen.
» drucken: pdf | html
|