Klassendiagramme mit UML programmieren

Klassendiagramme

Das Klassendiagramm ist ein Strukturdiagramm der Unified Modeling Language (kurz UML). Damit können Klassen und ihre Beziehungen untereinander grafisch dargestellt werden.


Erklärung

Wenn du ein Projekt mit mehreren Klassen progammieren möchtest, kann es recht schnell unübersichtlich werden. Welche Klasse erbt von welcher? Und wie waren nochmal die Klassen verknüpft?

Leas Kopf raucht

Um diese Beziehungen unter Klassen darzustellen und damit einen besseren Überblick über das Programm zu erhalten, werden Klassendiagramme verwendet. Diese sind Teil der Unified Modeling Language (kurz UML).

UML

UML ist eine visuelle Modellierungssprache für die Architektur, das Design und die Implementierung von komplexen Softwaresystemen.

Bevor du also anfängst, dein Projekt zu programmieren, solltest du es mithilfe der UML planen. Dadurch erhältst du einen Überblick darüber, wie das Programm später arbeitet und was es überhaupt zum Implementieren gibt.

Neben dem Klassendiagramm enthält UML noch viele weitere Diagramm-Typen, wie das Objektdiagramm oder das Aktivitätsdiagramm.

Aufbau einer Klasse

Ein Klassendiagramm kann verwendet werden, um dir einen Überblick über folgende Punkte zu verschaffen:

  • Welche Klassen benötige ich?
  • Welche Eigenschaften haben meine Klassen?
  • Wie stehen meine Klassen in Beziehung zueinander?

Eine Klasse besteht im Klassendiagramm aus folgenden drei Teilen:

Genereller Aufbau einer Klasse. Oben steht der Name, darunter folgen erst die Attribute und dann die Methoden.

Oben steht der Name der Klasse, darunter folgen die Attribute. Außerdem werden noch die Methoden aufgelistet.

Beachte hier, dass Klassennamen immer im CamelCase und Methoden- und Attributnamen immer im lowerCamelCase geschrieben werden.

Hinter dem Attributnamen folgt dabei immer der Datentyp, also int, boolean, String usw.

Manche Attribute werden bei der Deklaration auch direkt initialisiert. Wenn dies der Fall ist, wird die Belegung hinter einem Gleichzeichen angegeben.

Falls die Methoden Eingabeparameter besitzen, werden diese in den Klammern hinter den Methodennamen angegeben.

Wenn zusätzlich ein Rückgabetyp bei den Methoden existiert, wird dieser hinter einem Doppelpunkt angegeben. Auch hier kann jeder Datentyp verwendet werden.

sc

Sichtbarkeitsmodifikatoren

Doch noch ist die Klasse nicht vollständig abgebildet. Es fehlen noch die Sichtbarkeitsmodifikatoren. Diese zeigen - wie der Name schon sagt - an, ob und für wen die Methoden und/oder die Attribute einer Klasse sichtbar sind.

Die Sichtbarkeitsmodifikatoren sind:

  • public (+)
  • private (-)
  • protected (#)
  • package (~)

Wenn beispielsweise eine Methode auf public gesetzt ist, kann auch außerhalb der Klasse auf diese Methode zugegriffen werden.

Wenn sie auf private gesetzt ist, kann nur innerhalb der Klasse auf sie zugegriffen werden.

Methoden bzw. Attribute, die protected sind, können nur von Klassen verwendet werden, die zum Beispiel durch Vererbung miteinander verknüpft sind.

Wenn ~ vor dem Methoden- oder Attributnamen steht, kann nur innerhalb des gleichen Pakets auf sie zugegriffen werden.

Vollständige Klasse mit Sichtbarkeitsmodifikatoren

Klassen-Attribute und -Methoden

Neben den normalen Attributen und Methoden kann es sein, dass du manchmal auch Klassen-Attribute und Klassen-Methoden benötigst. Diese werden immer dann verwendet, wenn eine Eigenschaft nicht zu einzelnen Objekten (auch Instanzen), sondern zu deren Klasse gehört. Dabei kann jedes Objekt der Klasse auf diese Methoden und Attribute zugreifen. Jedes Klassen-Attribut (und damit auch seine Belegung) und jede Klassen-Methode existiert also nur ein einziges Mal. Im Programmcode werden sie mit dem Keyword static deklariert und im Klassendiagramm erkennst du sie daran, dass sie unterstrichen sind:

Klassendiagram mit static Attributen und Methoden unterstrichten, sowie mit eingefügten Sichtbarkeitsmodifikatoren

Kurzschreibweise

Eine Klasse kann in UML auch verkürzt dargestellt werden, falls du dir beispielsweise wirklich nur einen groben Überblick verschaffen möchtest.

Dafür wird nur der Klassenname angegeben:

Kurzschreibweise einer Klasse. Eine Box mit nur dem Klassennamen

Beispiel

Um die UML-Darstellung von Klassen etwas besser zu verstehen, schau dir als Beispiel die Klasse Store (Geschäft) an:

Beispielklasse Store ohne Sichtbarkeitsmodifikatoren

Diese Klasse trägt den Namen Store und hat die Attribute numberOfEmployees (Anzahl an Mitarbeiter:innen), numberOfCustomers (Anzahl an Kund:innen), soldItems (verkaufte Artikel) und revenues (Einnahmen).

Die Methoden setNumberOfEmployees, getNumberOfEmployees und getNumberOfCustomers findest du im Klassendiagramm immer ganz unten in der Auflistung.

Hinter den Attributnamen numberOfEmployees, numberOfCustomers und soldItems folgt der Datentyp int, wohingegen bei revenues double verwendet wird, da es bei Geldbeträgen auch zu Kommazahlen kommen kann.

Die Methode setNumberOfEmployees besitzt als Eingabeparameter numberOfEmployees.

Bei getNumberOfEmployees und getNumberOfCustomers ist der Rückgabetyp int, bei setNumberOfEmployees void. Dort wird also kein return in der Methode verwendet.

Jetzt muss jedoch noch festgelegt werden, welche Informationen wie sichtbar sind.

Bei den Attributen ist es wichtig, sie auf private zu setzen, damit sie nicht von anderen Klassen verändert werden können.

Die Methode setNumberOfEmployees sollte private sein, denn ansonsten könnten alle Klassen die Anzahl an Beschäftigten verändern. getNumberOfEmployees hingegen kann auf public gesetzt werden. Auch getNumberOfCostumers sollte nicht öffentlich zugänglich sein. Es bietet sich also wieder private als Sichtbarkeitsmodifikator an.

Die vollständige Klasse sieht also folgendermaßen aus:

Vollständige Beispielklasse
No items found.

simpleclub ist am besten in der App.

Mit unserer App hast du immer und überall Zugriff auf: Lernvideos, Erklärungen mit interaktiven Animationen, Übungsaufgaben, Karteikarten, individuelle Lernpläne uvm.

Jetzt simpleclub Azubi holen!

Mit simpleclub Azubi bekommst du Vollzugang zur App: Wir bereiten dich in deiner Ausbildung optimal auf deine Prüfungen in der Berufsschule vor. Von Ausbilder*innen empfohlen.

Jetzt simpleclub Azubi holen