Probeklausur „Zoo"
Gleiche Struktur wie 24.04.2026, andere Domäne. Empfohlen: erst Übungen 01–08 abschließen.
Modell:
- Animal (Interface) –
Diet getDiet() - Diet – Klasse mit
type(z.B. "MEAT", "PLANT") undboolean isHerbivore - Lion implements Animal – Konstruktor nur Name, Diet erzeugt sich selbst (
"MEAT", false) - Sheep implements Animal – Konstruktor Name + Diet
- Cage (abstract) – analog Room: floor, max, list, statisches CAGES, Comparable
- Aquarium extends Cage – mit
Animal keeper, MAX 5 - Pen extends Cage – mit
String name, Eintritt nur bei Herbivore oder MEAT-Diet "ALLACCESS" - ClosedCage extends Cage – immer geschlossen
- Zoo – Name + Cages, überladene Konstruktoren, Floors 2/4/6 = Aquarium
- ZooMain – main
Schreib alle Klassen in einen Editor und prüfe pro Aufgabe wie in der Original-Klausur.
Aufgabe 1 – Diet 2 P
Klasse Diet mit String type, boolean isHerbivore,
Konstruktor mit beiden Parametern, Getter getType() und isHerbivore().
Aufgabe 2 – Lion 3 P
Lion implements Animal mit Name, intern erzeugter Diet ("MEAT", false),
Getter getDiet(). Konstruktor nur Name.
Aufgabe 3 – Cage (abstract) 9 P
Wie Room: static CAGES, floor, maxAnimals,
animals, isFree(), enter(Animal) mit Exception, compareTo.
Aufgabe 4 – Aquarium 5 P
Aquarium extends Cage, MAX 5. Hat Animal keeper. isKeeperPresent()
mit null-Check. enter: wenn keeper schon da und neuer Animal ist Lion → Exception. Sonst super.enter.
Aufgabe 5 – Pen 4 P
Pen extends Cage. Eintritt nur wenn diet.isHerbivore()
oder "ALLACCESS".equals(diet.getType()).
Aufgabe 6 – Zoo 6 P
Überladene Konstruktoren (Zoo(String) → this(name, 4)).
Voll-Konstruktor füllt cages: Floors 2/4/6 → Aquarium, sonst Pen.
Aufgabe 7 – ZooMain 3 P
main: Zoo erzeugen, Lion + Sheep erzeugen, for-Each über cages, enter mit try/catch.