• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

OOP Bidirektionale Assoziation

fendix

fendix

Neues Mitglied
Hallo, ich muss für eine Uni Aufgabe mit Hilfe eines UML-Klassendiagramms ein neues Projekt erstellen. Ich habe zwei Klassen: Abteilung & Mitarbeiter. Die Mitarbeiter sind logischerweise einer Abteilung zugeordnet. Leider habe ich nach unzähligem durchforsten von Beiträgen keine Idee zur Lösung gefunden wie ich die beiden Klassen korrekt verbinde.

Abteilung:
Attribute: bezeichnung: String
Methoden: +Abteilung(bezeichnung:String), +getBezeichnung(): String, +getAnzahlMitarbeiter(): int, +addMitarbeiter(mit: Mitarbeiter), +getMitarbeiter(i: int): Mitarbeiter, +ausgabeMitarbeiter()

Mitarbeiter:
Attribute: name: String, personalnummer: int, anzahlMitarbeiter: int
Methoden: +Mitarbeiter (name: String, abt: Abteilung), +setName(name:String), +getName(): String, +getPersonalnummer(): int, +getAbteilung(): Abteilung, +isKollege(mit: Mitarbeiter): boolean, +bestimmeKollegen(): Mitarbeiter[*]

Die Klassen sind in beide Richtungen, sprich bidirektional, verbunden. <1 -------- 0..15>

Mein Code sieht bis jetzt so aus:


Abteilung.java:
import java.util.ArrayList;

public class Abteilung {
    private String bezeichnung;

    //private ArrayList<Mitarbeiter> mitarbeiterliste = new ArrayList<Mitarbeiter>();

    //Referenzattribute
    private Mitarbeiter ersterMitarbeiter;

    //Konstruktor
    public Abteilung(String bezeichnung){
        this.bezeichnung = bezeichnung;
    }

    public String getBezeichnung(){
        return this.bezeichnung;
    }

    public int getAnzahlMitarbeiter(int anzahlMitarbeiter){
        return anzahlMitarbeiter;
    }

    public void addMitarbeiter(Mitarbeiter ersterMitarbeiter){
        //ersterMitarbeiter = Mitarbeiter;
    }

    public Mitarbeiter getMitarbeiter(){
        return ersterMitarbeiter;
    }
}

Mitarbeiter.java:
public class Mitarbeiter {

    private String name;
    private int personalnummer;
    private int anzahlMitarbeiter;

    public Mitarbeiter (String name){
        this.name = name;
        anzahlMitarbeiter++;
        personalnummer++;
    }

    public void setName(String name){
        this.name = name;
    }

    public String getName(){
        return this.name;
    }

    public int getPersonalnummer(){
        return this.personalnummer;
    }

    /*public Abteilung getAbteilung(){
        return einMitarbeiter;
    }*/
}

Kann mir jemand von euch auf die Sprünge helfen? Danke.
 
kneitzel

kneitzel

Top Contributor
Also da steht nichts von ersterMitarbeiter. Daher ist es wohl falsch, sowas vorzuhalten.

Bezüglich Mitarbeiter sind die Methoden doch vorgegeben:
+getAnzahlMitarbeiter(): int, +addMitarbeiter(mit: Mitarbeiter), +getMitarbeiter(i: int): Mitarbeiter, +ausgabeMitarbeiter()
Das ist ja 1:1 in Methoden-Deklarationen umsetzbar.

Und bei Mitarbeiter ist es ähnlich. Da hast Du auch klare Vorgaben bezüglich der Methoden. Diese würde ich erst einmal 1:1 in Java Code umsetzen. Den Inhalt der Methoden und wie die Daten dann gehalten werden können, das kann man dann im Anschluss schauen. Wobei da vieles 1:1 umsetzbar sein dürfte - wenn da Ein Konstruktor angegeben wird als Mitarbeiter (name: String, abt: Abteilung) - dann muss man doch nicht zu viel nachdenken und da wird dann name und abt z.B. gespeichert...
 

Ähnliche Java Themen

Anzeige

Neue Themen


Oben