Verständnisproblem mit Assoziationen

Diskutiere Verständnisproblem mit Assoziationen im Java Basics - Anfänger-Themen Bereich.
T

theqwe

Hallo zusammen,

ich habe mal wieder ein Problem. Wir hatten jetzt die Assoziationen und sollen dazu wieder eine Übungsaufgabe fertigstellen. Dazu gab es ein UML Diagramm, das ich in eclipse schon umgesetzt habe. Jetzt geht es aber an die Aufgabe und ich habe keine Ahnung, wie genau diese umgesetzt werden soll:

a) Programmieren Sie die Klassen Abteilung und Mitarbeiter in Java wie im
UML-Klassendiagramm dargestellt.
Klasse Abteilung:
• Die Methode ausgabeMitarbeiter soll eine Liste der Namen und Per-
sonalnummern der Mitarbeiter einer Abteilung ausgeben.
Klasse Mitarbeiter:
• Der Konstruktor soll jedem Mitarbeiter eine fortlaufende Personalnummer
beginnend mit 1 zuordnen.
• Die Methode bestimmeKollegen soll ein Feld von Mitarbeitern als Er-
gebnis zurückgeben. Beachten Sie: Ein Mitarbeiter ist nicht sein eigener
Kollege.
b) Programmieren Sie die Klasse Mitarbeiterverwaltung mit der main-Me-
thode. Es sollen mehrere Abteilungen und Mitarbeiter erzeugt werden. Jede Me-
thode aus dem Klassendiagramm soll mindestens einmal aufgerufen werden.

12900

Mein Code sieht wie folgt aus: (einige Methoden aufgrund der Variablen noch nicht fertig)

Java:
package VL13;

public class Mitarbeiterverwaltung {

    public static void main(String[] args) {
      
        Abteilung abteilung1 = new Abteilung("Buchhaltung");
        Mitarbeiter mitarbeiter1 = new Mitarbeiter("Max Mustermann", abteilung1);

    }
}
Java:
package VL13;

public class Mitarbeiter {

    private String name;
    private int personalnummer;
    private static int anzahlMitarbeiter;
  
    private Abteilung abteilung;
  
    public Mitarbeiter(String name, Abteilung abt) {
      
        this.name = name;
        abteilung = abt;
        anzahlMitarbeiter++;
    }
  
    public void setName(String name) {
      
        this.name = name;
    }
  
    public String getName() {
      
        return name;
    }
  
    public int getPersonalnummer() {
      
        return personalnummer;
    }
  
    public Abteilung getAbteilung() {
      
        return abteilung;
    }
  
    public boolean isKollege(Mitarbeiter mit) {
      
        return false;
    }
  
    /*public Mitarbeiter[] bestimmeKollegen() {
      
        return ;
    }*/
}
Java:
package VL13;

public class Abteilung {
  
    private String bezeichnung;
  
    private Mitarbeiter[] abteilungsMitarbeiter;
  
    public Abteilung(String bezeichung) {
      
        this.bezeichnung = bezeichnung;
    }
  
  
    public String getBezeichnung() {
        return bezeichnung;
    }
  
    /*public int getAnzahlMitarbeiter(Mitarbeiter mit) {
      
        return ;
    }*/
  
    public void addMitarbeiter(Mitarbeiter mit) {
      
        abteilungsMitarbeiter[0] = mit;
    }
  
    /*public Mitarbeiter getMitarbeiter(int i) {
      
        return ;
    }
  
    public void ausgabeMitarbeiter() {
      
    }
*/
}

Wie baue ich die Assoziationen auf? Besonders mit den Datentypen Mitarbeiter und Abteilungen weiß ich da nichts anzufangen.

Wie immer Danke im Voraus
 
H

httpdigest

Die Assoziationen "Mitarbeiter hat eine Abteilung" und "Abteilung hat null bis fünfzehn Mitarbeiter" hast du ja quasi schon mit den Instanzvariablen in den beiden Klassen modelliert.
 
T

theqwe

Okay, dann habe ich das doch richtig gemacht. Habe das anhand eines anderen Beispieles aus der Vorlesung so übernommen. Das Problem ist, dass z.B. die "Buchhaltung" gar nicht gesetzt wird. Ich weiß jetzt nicht, was der nächste Schritt ist.
 
T

theqwe

So,
dass das mit der Buchhaltung nicht geklappt hat, lag an einem Tippfehler. Jetzt konnte ich einen neuen Mitarbeiter und eine neue Abteilung erzeugen. Wenn ich jetzt aber die addMitarbeiter() Methode verwenden möchte, kriege ich eine NullPointerExeption. Wie kriege ich das jetzt hin?
 
L

lennero

So,
dass das mit der Buchhaltung nicht geklappt hat, lag an einem Tippfehler. Jetzt konnte ich einen neuen Mitarbeiter und eine neue Abteilung erzeugen. Wenn ich jetzt aber die addMitarbeiter() Methode verwenden möchte, kriege ich eine NullPointerExeption. Wie kriege ich das jetzt hin?
Ist das die Methode aus Post 1? Das Array wurde nicht instanziert. Solltest du vermutlich im Konstruktor machen. Die Größe hast du ja gegeben.
 
T

theqwe

Hi,

ja genau. Ist die Methode aus 1. Habe das Array jetzt instanziert, aber nicht im Kontruktor, weil ich sonst aus den Methoden irgendwie nicht zugreifen kann. Soweit funktioniert jetzt erstmal alles. Ich kann ja später mal den Code hier posten, falls jemand Verbesserungsvorschläge hat. Bin offen für verschiedene Lösungswege.
 
mihe7

mihe7

aber nicht im Kontruktor, weil ich sonst aus den Methoden irgendwie nicht zugreifen kann.
Die Deklaration muss schon als Instanzvariable erfolgen. Die Initialisierung kann innerhalb des Konstruktors erfolgen:

Java:
public class Abteilung {
  
    private String bezeichnung;
  
    private Mitarbeiter[] abteilungsMitarbeiter; // Deklaration als Instanzvariable
  
    public Abteilung(String bezeichung) {
      
        this.bezeichnung = bezeichnung;
        abteilungsMitarbeiter = new Mitarbeiter[15]; // Initialisierung von abteilungsMitarbeiter
                                                     // mit neu erstelltem Array, das 15 Referenzen
                                                     // auf Mitarbeiter aufnehmen kann
    }
 
T

theqwe

Sorry für die verspätete Antwort. Das hat echt geholfen und es funktioniert nun alles, wie gewohlt. Danke sehr
 
Thema: 

Verständnisproblem mit Assoziationen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben