Leihräder am Bahnhof
AFB I–IIEin Fahrradverleih am Bahnhof verwaltet seine Leihräder mit einem Programm. Die Klasse Leihrad ist in Material 1 dargestellt. Das Verhalten der Methoden ist wie folgt festgelegt:
Der Konstruktor übernimmt Nummer und Typ; ein neues Rad ist nicht ausgeliehen, hat 0,0 gefahrene Kilometer und 0 Ausleihen. ausleihen() wirkt nur, wenn das Rad gerade nicht ausgeliehen ist: Dann wird es als ausgeliehen markiert und die Zahl der Ausleihen um 1 erhöht. zurueckgeben(km) wirkt nur, wenn das Rad ausgeliehen ist: Dann ist es wieder verfügbar, und die gefahrenen Kilometer werden addiert. In allen anderen Fällen ändern die Methoden nichts.
- - nummer: Ganzzahl
- - typ: Zeichenkette
- - ausgeliehen: Wahrheitswert
- - kilometer: Fließkommazahl
- - anzahlAusleihen: Ganzzahl
- c Leihrad(nummer: Ganzzahl, typ: Zeichenkette)
- + ausleihen()
- + zurueckgeben(km: Fließkommazahl)
- + istAusgeliehen(): Wahrheitswert
- + getKilometer(): Fließkommazahl
Leihrad r1 = new Leihrad(12, "Trekking"); // Zeile 1 Leihrad r2 = new Leihrad(15, "E-Bike"); // Zeile 2 r1.ausleihen(); // Zeile 3 r2.ausleihen(); // Zeile 4 r1.zurueckgeben(14.5); // Zeile 5 r1.ausleihen(); // Zeile 6 r2.zurueckgeben(32.0); // Zeile 7 r2.zurueckgeben(8.0); // Zeile 8 r1.ausleihen(); // Zeile 9
- Zeichnen Sie die Objektkarten von
r1undr2unmittelbar nach Ausführung von Zeile 2. - Stellen Sie den Zustand beider Objekte nach Zeile 6 und nach Zeile 9 jeweils in Objektkarten dar.
- Begründen Sie, warum die Zeilen 8 und 9 den Zustand der Objekte nicht verändern, und warum nach Zeile 2 zwei Objektkarten, aber nur eine Klassenkarte existieren.
Hinweise
Hinweis zu Aufgabe a)
objektname: Klasse, unterstrichen. Darunter alle fünf Attribute mit Werten – auch die, die der Konstruktor nicht als Parameter bekommt. Zeichenketten stehen in Anführungszeichen.„Zeichnen“ heißt hier: die wesentlichen Eigenschaften übersichtlich in der üblichen Objektkarten-Form darstellen.Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
ausgeliehen direkt vor Zeile 8 bzw. Zeile 9 an. Für den zweiten Teil: Was beschreibt eine Klassenkarte, was eine Objektkarte?