Eine allgemeine Ampel-Klasse
Zustände zyklisch durchlaufen
Auto- und Fußgängerampeln weisen eine Reihe von Gemeinsamkeiten auf. Beim Weiterschhalten durchlaufen beide zyklisch eine bestimmte Folge von Zuständen.
Autoampel:

Fußgängerampel:

Eine Klasse für beliebige Ampeln
Das Verhalten von Ampeln lässt sich verallgemeinernd mit dem folgenden Klassendiagramm beschreiben:

Hier eine Implementierung zu dieser allgemeinen Ampel
-Klasse.
Aufgabe 1
(a) Simuliere mit dieser Klasse das Verhalten einer Fußgängerampel.
(b) Autoampeln in anderen Ländern (z.B. in Frankreich) verhalten sich manchmal etwas anders als in Deutschland. Benutze die Klasse Ampel
zur Simulation einer solchen Ampel.

Spezielle Ampelklassen
Aus der allgemeinen Ampel
-Klasse kann man durch eine Erweiterung Klassen für Auto- und Fußgängerampeln gewinnen.

Die Klassen AmpelAuto
und AmpelFussgaenger
sollen dabei sämtliche Attribute und Methoden der Basisklasse Ampel
übernehmen (man sagt auch erben) und zusätzlich die im Klassendiagramm aufgeführten neuen Methoden (die Konstruktormethode und die Methode getLampen
) vorsehen.
Hier eine Implementierung der beiden Klassen Ampel
und AmpelAuto
. Beachte den Erweiterungshinweis AmpelAuto(Ampel)
bei der Deklaration der Klasse AmpelAuto
.
Aufgabe 2
(a) Führe das Programm selbst aus. Kannst du das Verhalten erklären?
(b) Entwickle analog eine Klasse AmpelFussgaenger
und teste sie.