Die Aufgabe
Aufgabe 6
Gegeben ist eine Klasse „Fahrt“. Sie verfügt über die Attribute „startOrt“ und „zielOrt“ (beides Strings) sowie „streckenlaenge“ (Fließkommazahl). Die Klasse enthält den kanonischen Konstruktor, der alle Attribute mit Werten füllt, sowie die Methode „getStreckenlaenge“.
Weiterhin gibt es eine Klasse „FahrtApp“ mit einer main-Methode. In der main-Methode wird zunächst ein Fahrt-Objekt angelegt, z. B.:
Fahrt fahrt = new Fahrt("Hamburg", "München", 791.6);a) Schreiben Sie in der Klasse „FahrtApp“ eine statische Methode „berechneFahrtdauer“. Beim Aufruf dieser Methode wird ihr ein Fahrt-Objekt übergeben, sowie die Geschwindigkeit als Fließkommazahl. Sie gibt die Fahrtdauer als Fließkommazahl zurück. Die Fahrtdauer wird berechnet, indem man die Streckenlänge durch die Geschwindigkeit dividiert.
b) In der main-Methode soll die Methode „berechneFahrtdauer“ mit dem oben angelegten Fahrt-Objekt aufgerufen und in einer Variablen gespeichert werden. Schreiben Sie dies.
c) Nun soll die obige Berechnung nicht mehr durch eine statische Methode erfolgen, sondern durch eine gewöhnliche Instanzmethode der Klasse „Fahrt“. Schreiben Sie diese Methode.
d) Wie ändert sich dadurch der Aufruf der Methode aus Aufgabenteil b)?
Die Fahrtdauer ist Strecke geteilt durch Geschwindigkeit. Bei Kilometern und Kilometern pro Stunde kommt die Dauer in Stunden heraus.
Gefragt ist zweimal dieselbe Rechnung an zwei Orten. Eine statische Methode (mit static) gehört zur Klasse und bekommt alles über Parameter, auch die Fahrt. Eine Instanzmethode (ohne static) gehört zu einem Objekt, hier einer Fahrt. Sie kennt die Attribute dieses Objekts schon.
methode(objekt, wert), das Objekt ist ein Parameter. Instanzmethode: objekt.methode(wert), das Objekt steht vor dem Punkt.- a) Statische Methode berechneFahrtdauer in FahrtApp.
- b) Sie in main aufrufen und das Ergebnis speichern.
- c) Dieselbe Rechnung als Instanzmethode in Fahrt.
- d) Den Aufruf aus b) anpassen.