erstellt 05.09.99; überarbeitet 13.06.00, 07.05.03, 0.07.04; übersetzt 20.05.03; überarbeitet 27.01.04, 10.01.05, 11.10.06, 10.01.2011, 29.11.2016, 20.11.18, 06.05.19, 30.11.20, 05.07.21, 30.05.22, 05.04.23; Deutsche Übersetzung Heinrich Gailer
Wir ändern die Auto
-Klasse des Kapitels, indem wir zwei Methoden hinzufügen:
true
, wenn die Meilen pro Gallone weniger als 15.0 ergeben.
true
, wenn die Meilen pro Gallone mehr als 30.0 ergeben.
Der Konstruktor und die berechneMPG()
Methode bleiben unverändert.
Jede von diesen neuen Methoden sollte berechneMPG()
verwenden, um die Meilen pro Gallone zu bekommen, und sie nicht selbst berechnen.
Wir stellen die Benutzer-Interaktionen in die main()
Methode, so dass der Benutzer Werte für jedes Auto eingibt.
Die main()
Methode verwendet die zusätzlichen Methoden, um an den Anwender eine Meldung auszugeben, ob das Auto ein Benzinschwein oder ein Sparauto ist.
Wir könnten in Versuchung geraten einen dieser üblichen Designfehler zu begehen:
startMeilen, endMeilen
und gallonen
.
Hier ist eine Ausgabe des Testprogramms MeilenProGallone:
D:\JavaNotes\Aufgaben>java MeilenProGallone Geben Sie den Anfangsmeilenstand ein: 10000 Geben Sie den Endmeilenstand ein: 10400 Geben Sie die Gallonen ein: 10 Meilen pro Gallone: 40.0 Sparauto!
Zurück zum Inhaltsverzeichnis.
Wir fügen der Auto
-Klasse einen weiteren Konstruktor hinzu,
der nur noch einen Parameter für den Meilenanfangsstand hat.
Die Meilen pro Gallone können noch nicht berechnet werden.
Jetzt fügen wir der Klasse die folgende Methode hinzu:
void auftanken( double aktTacho, double gallonen )
Das simuliert eine Tankfüllung an der Tankstelle:
aktTacho
ist der aktuelle Tachometerstand und
gallonen
ist die Anzahl der Gallonen, die den Tank gefüllt haben.
Wir speichern diese Werte in den Instanzvariablen.
Mit dieser Information können die Meilen pro Gallone berechnet werden.
Wir schreiben die Methode so, dass sie jedes Mal, wenn sie aufgerufen wird, die Instanzvariablen aktualisiert (Simulation eines weiteren Tankvorgangs).
Nach jedem Aufruf wird berechneMPG()
die letzten
Meilen pro Gallone berechnen.
Wir schreiben eine neue Testklasse MeilenProGallone2
mit einer main()
Methode,
die ein Auto
-Objekt mit dem neuen Konstruktor erzeugt und die auftanken()
Methode ein paar Mal aufruft.
D:\JavaNotes\Aufgaben>java MeilenProGallone2 +++ Besuch der Tankstelle +++ alter Tachometerstand: 0.0 Aktuellen Tachometerstand eingeben: 350 Anzahl der Gallonen fuer die Tankfuellung: 10 Meilen pro Gallone: 35.0 Autotyp: Sparauto Programm beenden <j>a <n>ein? n +++ Besuch der Tankstelle +++ alter Tachometerstand: 350.0 Aktuellen Tachometerstand eingeben: 450 Anzahl der Gallonen fuer die Tankfuellung: 10 Meilen pro Gallone: 10.0 Autotyp: Benzinschwein! Programm beenden <j>a <n>ein? j
Hinweis 1: Zum Einlesen des Userinputs Programm beenden <j>a <n>ein?
werden wir statt nextLine()
die next()
Methode brauchen. Die next()
Methode wartet, falls kein Token gefunden wurde, auf eine neue Eingabe. Die Methode nextLine()
wartet nicht, auch wenn nur noch das Zeilenende gefunden wird.
Hinweis 2: Wir verwenden eine do-while-Schleife.
do { stuff here ... }while( bedingung );Achtet auf das Semikolon nach
while( bedingung );
.
Zurück zum Inhaltsverzeichnis.
Ende der Aufgaben