Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update zoo assignment to force abstractio and interfaces #143

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Bibliothek"
linkTitle: "Bibliothek"
type: docs
weight: 2
weight: 1
description: >
Aufgabe zu Modul #J3 - [OOD](../../../../docs/java/java-ood) - Bibliothek

Expand Down
62 changes: 0 additions & 62 deletions content/en/labs/java/java-ood/01_Zoo.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Vehicles"
linkTitle: "Vehicles"
type: docs
weight: 3
weight: 2
description: >
Aufgabe zu Modul #J3 - [OOD](../../../../docs/java/java-ood) - Vehicles

Expand Down
65 changes: 65 additions & 0 deletions content/en/labs/java/java-ood/03_Zoo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: "Zoo"
linkTitle: "Zoo"
type: docs
weight: 3
description: >
Aufgabe zu Modul #J3 - [OOD](../../../../docs/java/java-ood) - Zoo
---
Modelliere einen Klassenaufbau für einen Zoo. Folgende Klassen sollen enthalten sein:

- Personen
- Gehege
- Tiere

Jede dieser Klassen soll mehrere Spezialisierungen enthalten.

Bei den Personen unterscheidet man zwischen Mitarbeitern und Mitgliedern. Ein Mitarbeiter hat beispielsweise einen Lohn, den ein Mitglied nicht hat. Die folgenden Attribute sollen vorhanden sein:

- Lohn
- Beschreibung des Jobs
- Telefonnummer
- Mitglied seit
- Nummer der Mitglied-Karte

Verteile die Attribute also korrekt auf die Generalisierung und die Spezialisierungen.

Bei den Gehegen wird unterschieden zwischen Gelände, Terrarium, Aquarium und Käfig. Die einzigartigen Eigenschaften der verschiedenen Gehege sollen wie folgt modelliert werden:

- Gehege-Nummer
- Grösse in Quadratmeter
- Temperatur
- Feuchtigkeit
- Süss- / Salzwasser
- Fassungsvermögen
- Zaunhöhe
- Wassergraben vorhanden

Verteile die Attribute also korrekt auf die Generalisierung und die Spezialisierung. Selbstverständlich kann ein Gehege auch von einem anderen abgeleitet werden.

Bei den Tieren ist es festgelegt, dass es Land-, Wasser- und Flugtiere geben soll. Jede dieser Gruppen hat bestimmte Fähigkeiten:

- Landtiere können sich zu Fuss bewegen (z.B. walk()).
- Wassertiere können schwimmen (z.B. swim()).
- Flugtiere können fliegen (z.B. fly()).

Zusätzlich soll jedes Tier eine Methode besitzen, um einen spezifischen Laut von sich zu geben (z.B. makeNoise()).
Das Standardverhalten ist, dass ein Tier kein Ton macht. Bei den Tieren, bei denen das nicht zutrifft, muss dieses Verhalten entsprechend angepasst werden.

Führe Tiere ein, die in mehr als einem dieser Bereiche agieren können (z.B. ein Tier, das sowohl an Land als auch im Wasser leben kann.).
Stelle sicher, dass du mindestens ein Tier hast, welches keinen Laut macht.
Achte darauf, diese Kombinationen korrekt zu modellieren.

Du kannst frei wählen, welche konkreten Tiere dein Zoo enthalten soll und wie diese auf die Gehege verteilt werden. Beispiele wären:

- Krokodil (Land- und Wassertier)
- Adler (Land- und Flugtier)
- Pinguin (Land- und Wassertier)
- Qualle (Wassertier)

Der Zoo hat also Mitarbeiter und Mitglieder sowie verschiedene Tiere, die in verschiedenen Gehegen leben. Die Beziehungen zwischen den Klassen, wie Zoo, Gehegen und Tieren, sollten den realen Verhältnissen in einem Zoo nachempfunden sein.

Info: Bei dieser Aufgabe darf man NICHT Gebrauch von Lombok machen.

---
Hier kannst du [zurück zur Theorie](../../../../docs/java/java-ood).
Loading