JAVA - Assoziation Beidseitige Beziehung, könnt ihr es mit eigenen Worten zusammenfassen und sagen wie es im Programm aussehen würde?

2 Antworten

Also: Dein Beispiel ist durchaus ein sehr gutes.

Dabei spielt es noch eine große Rolle in wieweit die beiden Klassen miteinander Verknüpft sind: 

1 zu 1: Ein Mensch hat ein Hirn. (Auch wenn man beim Blick in die Politik annehmen könnte, das manche keines haben). Und ein Hirn kann auch nur einem Menschen zugeordnet sein.

1 zu n: Dein Beispiel mit Klasse und Schüler. - Ein Schüler kann nur in einer Klasse sein, hingegen kann eine Klasse mehrere Schüler umfassen.

n zu m: In einem Verein kann ein ein Sportler an mehreren Sportarten teil haben. In eine Sportart können mehrere Sportler dabei sein.

Je nach Art der Verknüpfung muss geregelt sein, wie das behandelt wird.

Ich erläutere jetzt nur dein direktes Beispiel mit: Schüler und Klasse, wobei du dir danach überlegen kannst, wie es wohl für 1 zu 1 und n zu m aussieht.

Bei einer Verknüpfung 1 zu n ist folgendes zu tun:

1. Die Klasse Schüler benötigt eine Methode: setKlasse();

2. Die Klasse Klasse benötigt zwei Methoden: addSchueler(); und removeSchueler();

Sodass du aus dem Blickwinkel des Schülers die Klasse setzen kannst und aus dem Blickwinkel der Klasse Schüler hinzufügen/entfernen kannst.

Innerhalb der Methoden sind dann diverse Kriterien zu berücksichtigen.

z.B. bei Schüler#setKlasse();

Muss eine Prüfung erfolgen ob der Schüler sich bereits in einer Klasse befindet. In diesem Falle muss der Schüler natürlich erstmal aus der aktuellen Schülerliste gestrichen werden, anschließend der neuen Klasse hinzugefügt werden und dem Schüler muss mitgeteilt werden, was nun seine neue Klasse ist.

Hab hab das mal als Codebeispiel nachgestellt, vielleicht wird es dann etwas klarer.

http://pastebin.com/5V9Akcgd

KingOff 
Fragesteller
 27.01.2016, 10:35

danke , perfekt 😄👌👌👌

0

Jeder Schüler hat eine Klasse und jede Klasse einen bestimmten Satz an Schülern.

Als Attribute.

Ich sehe hierbei das Problem nicht.