Benutzer-Werkzeuge

Webseiten-Werkzeuge


info10:aufgaben:fahrzeuge

Fahrzeuge, Auto, Motor

Erstelle die Klassen AUTO, FAHRRAD, MOTORRAD, LKW mit den dazugehörigen Methoden wie beschleunigen(), bremsen(), startstop(). Wir bauen später einen Motor in manche Fahrzeuge ein, der eine Leistung besitzt und den Status an/aus haben kann.

Aufgaben

Aufgabe 1 (Beschleunigen und Bremsen)

  1. Erstelle die Klasse AUTO mit den Attributen Geschwindigkeit, Hersteller, Farbe, motorlaeuft (w/f).
  2. beschleunigen() nur wenn Motor läuft
  3. bremsen() nicht in negative Werte laufen lassen (if/else)
  4. startstop() (lässt Motor an, wenn aus, stoppt Motor, wenn an, Meldungen ausgeben, wenn Motor an/ausgeschaltet wurde)
  5. Führe eine Höchstgeschwindigkeit für die Auto Objekte ein (Neue Variable, Im Konstruktor Wert vergeben, zB 40, Die Geschwindigkeit darf die Höchstgeschwindigkeit nicht übersteigen)

Hinweise: - if/else kann man Schachteln - Vergleiche: ==, <, >, ⇐, >=

Aufgabe 2 (Methoden mit Parameter 1)

  1. Führe eine Methode ein, mit dem man die Farbe ändern kann.
  2. Führe eine Methode ein, mit der man den Hersteller ändern kann.
  3. Führe EINE Methode ein, mit der man beides ändern kann.
  4. Erstelle einen Konstruktor mit Eingabe-Parametern, der es ermöglicht Objekte mit unterschiedlichen Attributwerten zu erstellen. (schwarzer BMW, rosa VW)

Aufgabe 3 (Methoden mit Parameter 2)

  1. Kopiere die Methoden beschleunigen() und bremsen() und erzeuge Methoden mit Parameter: beschleunigen(int kmh) und bremsen(int kmh)
  2. Für den Parameter kmh sollen nur positive Werte zugelassen werden (if/else).
  3. Wird beim Beschleunigen ein Wert eingegeben, der die Höchstgeschwindigkeit überschreiten würde, so soll nur bis zur Höchstgeschwindigkeit beschleunigt werden.
  4. Teste die Methode ausführlich
  5. Implementiere und Teste die Methode bremsen(int kmh) analog
  6. Der Code in den Methoden bremsen() und beschleunigen() ist jetzt überflüssig. Lösche ihn. Rufe stattdessen in beschleunigen() die Methode beschleunigen(int kmh) mit Parameterwert 10 auf. Bei bremsen() analog.

Aufgabe 4 (Methoden mit Rückgabetyp)

  1. Führe ein Attribut Hubraum (Datentyp Dezimalzahl) ein.
  2. Ergänze im zweiten Konstruktor den Hubraum als Eingabeparameter.
  3. Erstelle eine Methode public double berechneLeistung(){…}, die die Leistung aus dem Hubraum berechnet und als Wert an die aufrufende Methode zurück gibt. (Leistung = Hubraum (in Litern) * 70)
  4. Ergänze ein Attribut Leistung und setze den Attributwert entsprechend.
  5. Die Höchstgeschwindigkeit berechnet sich nach der Formel: Höchstgeschwindigkeit = 2* Leistung aber maximal 310 km/h.
  6. Erstelle analog dazu eine Methode public int berechneHoechstgeschwindigkeit(){…}

Aufgabe 5 (Eingabewerte)

  1. Überlege, welche Attributwerte als Eingabewerte zur Verfügung stehen sollen.
  2. Stelle für diese Attributwerte jeweils einen Parameter im Konstruktor zur Verfügung.

Aufgabe 6 (Vererbung 1)

  1. Führe ein Attribut Zylinder (immer 4) ein.
  2. Erstelle die Klasse LKW und die Klasse MOTORRAD mit passenden Attributen, Konstruktoren und Methoden.
  3. Verlagere geeignete Attribute und Methoden in eine Oberklasse KFZ um Codedoppelungen zu vermeiden.
  4. Die Klassen AUTO, LKW und MOTORRAD erben dann alle Attribute und Methoden von dieser Oberklasse KFZ (public class AUTO extends KFZ{…}).
  5. Wir kennzeichnen die Klasse KFZ als abstract, damit keine Objekte von KFZ erstellt werden können.
  6. Es liegen noch Codedoppelungen in den Konstruktoren vor. Die Konstruktoren können auch nach KFZ verschoben werden.
  7. In der Unterklasse (z.B. AUTO) muss dann im Konstruktor der Konstruktor der Oberklasse aufgerufen werden (java Befehl: super(), oder super(Hubraum))

Aufgabe 7 (Vererbung 2)

  1. Erstelle die Klasse FAHRRAD.
  2. Da Fahrrad-Objekte keinen Motor haben können Fahrrad-Objekte so nicht sinnvoll von KFZ erben.
  3. Erstelle eine Klasse FAHRZEUG in die Attribute und Methoden verschoben werden, die zu allen Fahrzeugen gehören (auch die ohne Motor).
  4. Die Klasse KFZ erbt von FAHRZEUG.
  5. Die Klasse AUTO erbt von KFZ wie bisher.
  6. Die Klasse FAHRRAD erbt direkt von FAHRZEUG.
  7. Schreibe geeignete Konstruktoren.
  8. Positioniere die bisher entwickelten Methoden sinnvoll in den Klassen. Überschreibe geeignete Methoden sinnvoll.
  9. beschleunigen(int kmh) soll in Fahrzeug verlegt werden. Trotzdem soll bei KFZs geprüft werden, ob der Motor bereits läuft.

Aufgabe 8 (toString-Methode main-Methode)

  1. Erstelle eine toString() Methode, die jedes Fahrzeug mit seinen Attributwerten beschreibt und als String zurückgibt.
  2. Erstelle eine main() Methode, erzeuge in dieser Methode mehrere Fahrzeuge, rufe Methoden wie beschleunigen() auf und gib die Fahrzeuge mit der toString() aus.

Aufgabe 9 (Motor auslagern in eigene Klasse)

  1. Der Motor wird nun als eigenständiges Objekt implementiert. Erstelle eine Klasse MOTOR und verlagere den nötigen Code in diese Klasse.
  2. Jedes KFZ-Objekt hat natürlich einen Motor, d.h. es hat eine Beziehung zu einem MOTOR-Objekt. Diese Beziehung wird wie im Unterricht beschrieben durch eine Referenzvariable umgesetzt.
  3. beschleunigen und bremsen bleiben in der Klasse KFZ
  4. Setzte die Attribute in MOTOR privat und erstelle in der Klasse MOTOR geeignete getter und setter Methoden.
  5. Passe die Klasse Auto entsprechend an. Beispielweise muss beim Prüfen ob der Motor läuft ein getter der Motor Klasse aufgerufen werden.
  6. Erstelle eine Klasse FAHRZEUGTEST und verlege die main Methode aus AUTO in FAHRZEUGTEST. In FAHRZEUGTEST können dann auch andere Fahrzeug-Objekte erstellt und getestet werden.
info10/aufgaben/fahrzeuge.txt · Zuletzt geändert: 2021/10/28 11:15 von Ulrich Schneider