Die Aufgabe
Aufgabe 5
Gegeben ist die folgende Klasse:
public class Fahrzeug { private String marke; private String kennzeichen; private double tankvolumen; // in Liter private double fuellstand; // in Prozent}Die Klasse soll folgendermaßen geändert und ergänzt werden: Die Attribute „tankvolumen“ und „fuellstand“ sollen aus der Klasse „Fahrzeug“ in eine separate Klasse „Tank“ verschoben werden. Jedes Fahrzeug-Objekt soll das zugehörige Tank-Objekt speichern.
a) Schreiben Sie die geänderte Klasse „Fahrzeug“. Fügen Sie den kanonischen Konstruktor hinzu, der alle Attribute mit Werten versieht.
b) Schreiben Sie die Klasse „Tank“. Sie soll ebenfalls einen kanonischen Konstruktor enthalten.
c) Geben Sie Code an, mit dem man ein Fahrzeug-Objekt und ein damit verbundenes Tank-Objekt erzeugen kann. Geben Sie nur die benötigten Code-Zeilen an, keine umgebende Methode oder Klasse.
d) Schreiben Sie eine toString-Methode für die Klasse „Fahrzeug“. Neben den Attributwerten von marke und kennzeichen des Fahrzeugs soll auch der verfügbare Treibstoff mit ausgegeben werden. Diese wird folgendermaßen berechnet: tankvolumen * fuellstand / 100.0
Geben Sie auch hierfür erforderliche Erweiterungen in der Klasse „Tank“ an. Es soll aber nicht über get-Methoden o. ä. direkt auf die Attributwerte des Tank-Objekts zugegriffen werden.
Gegeben ist eine Klasse Fahrzeug mit vier Attributen. Zwei davon, tankvolumen und fuellstand, beschreiben eigentlich den Tank. Sie ziehen in eine neue Klasse Tank um. Fahrzeug bekommt dafür ein Attribut, das ein Tank-Objekt speichert.
Ein kanonischer Konstruktor ist der Konstruktor mit genau einem Parameter je Attribut, in derselben Reihenfolge. Er setzt jedes Attribut auf den übergebenen Wert.
- a) Fahrzeug mit einem Attribut tank und dem kanonischen Konstruktor.
- b) Die Klasse Tank mit ihrem kanonischen Konstruktor.
- c) Ein Tank-Objekt und ein Fahrzeug-Objekt damit erzeugen.
- d) Tank rechnet den Treibstoff aus; toString in Fahrzeug fragt ihn danach.