i

Übungen

Allgemeine Anmerkungen

Zusätzlich zu den folgenden Übungen kannst Du die Erstellung einer eigenen Datenstruktur im nächsten Projekt Platz Da! üben.

Da man Objektsammlungen immer wieder benötigt, sind entsprechende Klassen schon fertig implementiert bei Java dabei. Wie man z.B. Listen und ähnliche Klassen benutzt, kannst Du im Abschnitt zu Listen lernen.

Aufgabe 1 - Erst abheben

Es ist wichtig, dass Du eine Karte erst von einem Stapel abhebst, bevor Du sie auf einen anderen Stapel legst. Dies entspricht auch dem Verhalten eines realen Stapels, da eine Karte sonst auf zwei Stapeln gleichzeitig liegen müsste.

Das folgende Codefragment demonstriert eine Benutzung, die zu Problemen führt:

Stapel a = new Stapel();
Stapel b = new Stapel();
a.push(new Karte(1));
a.push(new Karte(2));
b.push(a.top());
a.pop();

Erkläre mit Hilfe eines Objektdiagramms, welches Problem sich hier ergibt.

Falls Du Hilfe benötigst, kannst Du das angefangene Objektdiagramm erläutern und ergänzen.

Falls Du Dich mit dem Exkurs - Generische und innere Klassen beschäftigt hast: Erkläre warum sich dieses Problem bei Verwendung einer zusätlichen Zwischenschicht ähnlich der Klasse Listenelement nicht ergibt.

Aufgabe 2 - Paare

Es sollen Paare von Menschen verwaltet werden. Dazu soll eine Klasse Paar programmiert werden, welche den folgenden Anforderungen genügt:

  • Ein Objekt der Klasse Paar enthält je eine Referenz auf die beiden Objekte, die ein Paar bilden.
  • Im Konstruktor sollen beide Menschen übergeben werden.
  • Es soll eine Methode getPartner(Mensch m) geben, welche einen Menschen als Parameter übergeben bekommt. und den jeweiligen Partner des Paares zurückgibt. Falls der als Parameter übergebene Mensch kein Teil des Paares ist, wird null zurückgegeben.

Außerdem soll es eine Klasse Mensch geben. Ein Mensch hat einen Namen und einen Wohnort.

Der folgende Dialog im Codepad demonstriert die geforderte Funktionalität:

Mensch mann = new Mensch("Anton", "Aachen");
Mensch frau = new Mensch("Barbara", "Bonn");
Paar paar = new Paar(mann, frau);
paar.getPartner(mann).name
"Barbara"   (String)
Mensch m = new Mensch("Charly", "Cochem");
paar.getPartner(m)
null
  1. Zeichne ein Objektdiagramm, das den oben dargestellten Code visualisiert.
  2. Zeichne ein Klassendiagramm mit allen notwendigen Klassen.
  3. Optional: Schreibe das Grundgerüst der Klassen und erzeuge JUnit-Tests.
  4. Implementiere die Klasse und teste sie mit Hilfe des Objektinspektors/der Direkteingabe/JUnit.
  5. Optional: Ändere die Klasse Paar so ab, dass sie beliebige Paare verwalten kann. Nutze dazu generische und -und falls notwendig- innere Klassen.

Suche

v
2.3.3.2.7
www.inf-schule.de/programmierung/oopjava/beziehungen/keeporthrow/uebungen

Rückmeldung geben