UML-Klassendiagramm

Ein Klassendiagramm ist ein UML-Diagramm, das die Struktur eines Systems durch Klassen, ihre Eigenschaften, Methoden und Beziehungen zueinander darstellt.
Es wird verwendet, um die logische Architektur eines Systems zu modellieren und den Aufbau sowie die Interaktionen der einzelnen Komponenten zu visualisieren.

Klassendiagramme sind besonders nützlich für die Planung objektorientierter Systeme, da sie das Design und die Abhängigkeiten klar und strukturiert darstellen.

Syntax

Klassename muss immer großgeschrieben sein.
Datentyp bezeichnet den Datentyp eines Attributs.
Rückgabewerttyp gibt den Rückgabewerttyp einer Programmierung Methode an.
In der Programmierung Methode können, falls bekannt, noch Attribute eingefügt werden.

+/-/# stehen für die Zugriffsmodifikatoren:

Bsp

public class Auto {
    // Attribute (Eigenschaften) des Autos
    private String marke;
    private String modell;
    private int baujahr;
    private boolean istAn;

    // Konstruktor zur Initialisierung eines Autos
    public Auto(String marke, String modell, int baujahr) {
        this.marke = marke;
        this.modell = modell;
        this.baujahr = baujahr;
        this.istAn = false; // Auto ist standardmäßig ausgeschaltet
    }

    // Methode zum Starten des Autos
    public void starten() {
        if (!istAn) {
            istAn = true;
            System.out.println(marke + " " + modell + " ist gestartet.");
        } else {
            System.out.println(marke + " " + modell + " läuft bereits.");
        }
    }

    // Methode zum Ausschalten des Autos
    public void ausschalten() {
        if (istAn) {
            istAn = false;
            System.out.println(marke + " " + modell + " wurde ausgeschaltet.");
        } else {
            System.out.println(marke + " " + modell + " ist bereits aus.");
        }
    }

    // Getter-Methode, um das Baujahr abzurufen
    public int getBaujahr() {
        return baujahr;
    }

    // Methode zur Ausgabe von Informationen über das Auto
    public void anzeigenInfo() {
        System.out.println("Marke: " + marke + ", Modell: " + modell + ", Baujahr: " + baujahr);
    }
}

Diese Klasse können wir in einem UML-Klassendiagramm darstellen, um eine bessere Übersicht zu haben.

Klassen verbinden

Um Klassen miteinander zu verbinden, verwenden wir UML-Terminologie.
Das sind die Linien, zwischen die Klassen.

Zwei Klassen werden mit einer Linie verbunden, was eine Beziehung zwischen ihnen darstellt.

Eine Assoziation bedeutet, dass Objekte der einen Klassen auf Objekte der anderen Klasse zugreifen können.
Dabei kann eine Klasse eine Referenz auf eine Instanz der anderen Klasse enthalten, aber es wird nicht unbedingt ein neues Objekt erzeugt oder eine Static Java Methode verwendet.

In UML wird Vererbung durch eine Pfeil-Linie mit einer leeren Spitze dargestellt.
Eine Unterklasse erbt dabei Attribute und Programmierung Methoden von einer Oberklasse.

In UML wird Aggregation durch eine Linie mit einer hohlen Raute dargestellt.
Sie zeigt eine 'hat-eine'-Beziehung an, bei der die verbundene Klasse unabhängig existieren kann.

In UML wird Komposition durch eine Linie mit einer ausgefüllten Raute dargestellt.
Sie zeigt eine 'besteht-aus'-Beziehung, bei der die enthaltenen Objekte nicht unabhängig existieren können