Kurs 20022 objektorientiertes
Programmieren
Einsendeaufgaben
zu Lerneinheit 7
Programmieraufgabe mit BlueJ: (25 Punkte)
Gegeben sei das BlueJ
Projekt RentalCarStock.zip.
Das Programm soll
zur Verwaltung von Mietwagen eingesetzt werden. Dabei soll davon ausgegangen
werden, dass es sich hier höchstens um einen Bestand von 10 Wagen
handeln kann. Implementieren Sie dazu die 2 Schnittstellenbeschreibungen
"List" und "Element". Die Schnittstelle "List"
wird von der Klasse "RentalCarStock" implementiert und die Schnittstelle
"Element" von der Klasse "Car". Ergänzen Sie
die Klassen "RentalCarStock" und "Car" so, dass sie
den Spezifikationen der Schnittstellen, die diese implementieren, entsprechen.
Sie können nach
der Implementierung der Klassen ein Objekt der Klasse "RentalCarStock"
und einige der Klasse "Car" erzeugen. Benutzen Sie die Methoden
des Objekts der Klasse "RentalCarStock", um die Funktionalität
Ihrer Klassen zu überprüfen.
Hinweise:
-
Beim Aufruf
der Methoden "equals" oder "lessOrEquals" werden
als Übergabeparameter Objekte der Klasse "Element"
verlangt. Dies ist eine generische Schnittstellenbeschreibung, womit
verschiedene Listentypen aufgebaut werden können. In diesem Beispiel
operieren wir auf einer Liste von "Car"-Objekten, deshalb
müssen wir beim Aufruf dieser Methoden die übergebene Klasse
zunächst darauf hin überprüfen, ob sie zur Klasse "Car"
gehört. Dies kann man mit der Operator "instanceof"
realisieren. Dieser Operator wird wie folgt aufgerufen:
A
instanceof B
Der
Operator liefert true falls das Objekt A eine Instanz der Klasse B
ist.
Danach
kann das der Methode "equals" oder "lessOrEquals"
übergebene Element gecastet werden, d. h. wir setzen explizit
fest, welcher Klasse das übergebene Element zugehört. Dies
sieht beispielsweise für die Methode "equals" so aus:
equals((Car)
toCompareWith)
hierdurch
geben wir den Compiler bekannt, daß die Objekte die beim Methodenaufruf
übergeben werden der Klasse "Car" angehören.
-
Zum
Vergleichen von 2 Zeichenketten (Strings) kann die Methode
public
int compareTo(String anotherString)
aus
der Klasse java.lang.String verwendet werden (import java.lang.*;).
Diese Methode liefert beim Gleichheit zweier Zeichenketten (beispielsweise
a und b):
a.compareTo(b);
eine
Null und bei Ungleichheit eine positive (a>b) oder negative (a<b)
ganze Zahl zurück.
|