AP2Lernhub
Sehr hoch📊 83% Prüfungs-Häufigkeit🎯 ~79 Punkte kumuliert

Klassendiagramm

Statische Sicht auf eine OO-Anwendung – in 83% der Prüfungen gefragt.

Warum Priorität „Sehr hoch"? Fast immer in der Prüfung (80–99%). Intensiv üben.

Lernziele

  • Eine Klasse mit Attributen, Methoden und Sichtbarkeiten korrekt notieren
  • Beziehungen (Vererbung, Assoziation, Aggregation, Komposition, Abhängigkeit) sicher auseinanderhalten
  • Multiplizitäten richtig beschriften (1, 0..1, *, 1..*, 0..*)
  • Ein Klassendiagramm aus einer Textbeschreibung ableiten

Kernbegriffe

Sichtbarkeit
+ public, − private, # protected, ~ package. Steht vor Attribut/Methode.
Multiplizität
Anzahl an Instanzen, die an einer Beziehung teilnehmen (z. B. 1..*).
Assoziation
»kennt« – einfache Verbindung zweier Klassen, mit optionaler Rolle und Multiplizität.
Aggregation
»hat«/Teil-Ganzes, das Teil lebt unabhängig. Offene Raute an der Ganzes-Seite.
Komposition
Starkes Teil-Ganzes, Teil stirbt mit dem Ganzen. Gefüllte Raute.

1. Aufbau einer Klasse

Eine Klasse wird als Kasten mit drei Abschnitten dargestellt:

┌──────────────────────────────┐
│           Kunde              │
├──────────────────────────────┤
│ − id : Integer               │
│ − name : String              │
│ − kundenseit : Date          │
├──────────────────────────────┤
│ + aendereName(n : String)    │
│ + getAnzahlBestellungen() : Int │
└──────────────────────────────┘
  • Abschnitt 1: Klassenname (bei abstrakten Klassen kursiv)
  • Abschnitt 2: Attribute sichtbarkeit name : Typ [= Initialwert]
  • Abschnitt 3: Methoden sichtbarkeit name(param : Typ) : Rückgabetyp

Sichtbarkeiten

  • + public – überall sichtbar
  • private – nur innerhalb der Klasse
  • # protected – Klasse + Unterklassen
  • ~ package – gleiches Paket

Statisches & Abstraktes

  • Statische Mitglieder: unterstrichen
  • Abstrakte Methoden / Klassen: kursiv

2. Beziehungen

BeziehungNotationSemantik
Assoziationdurchgezogene LinieA »kennt« B. Einfache Verbindung.
Gerichtete AssoziationPfeil →A weiß von B, aber nicht umgekehrt.
AggregationLinie mit offener Raute ◇ bei AA »hat« B, aber B kann ohne A existieren (lose Teil-Ganzes-Beziehung).
KompositionLinie mit gefüllter Raute ◆ bei AA »besteht aus« B, B stirbt mit A (starke Teil-Ganzes-Beziehung).
VererbungPfeil mit offener Spitze △ zu Oberklasse»B ist ein A«.
Realisierunggestrichelte Linie mit offener Spitze △»B implementiert Schnittstelle A«.
Abhängigkeitgestrichelter PfeilA nutzt B temporär (z. B. als Parameter).

3. Multiplizitäten

  • 1 – genau eins
  • 0..1 – null oder eins (optional)
  • * oder 0..* – beliebig viele
  • 1..* – mindestens eins
  • n – genau n

Schreibweise: An beiden Enden der Beziehung notiert, optional mit Rollenname.

4. Beispiel – Online-Shop

Kunde  1 ── 0..*  Bestellung  1 ──◆── 1..*  Bestellposition  *── 1 Artikel
                                                              (Komposition)
Person (abstrakt) ← Kunde, Mitarbeiter  (Vererbung)
  • Ein Kunde kann 0..n Bestellungen haben.
  • Eine Bestellung enthält mindestens 1 Bestellposition (Komposition: ohne Bestellung keine Position).
  • Eine Position bezieht sich auf genau einen Artikel.
  • Kunde und Mitarbeiter erben von der abstrakten Klasse Person.

5. So gehst du in der Prüfung vor

  1. Substantive im Text → Kandidatenklassen.
  2. Verben zwischen ihnen → Assoziationen.
  3. Pro Beziehung: Multiplizität von beiden Seiten aus bestimmen.
  4. Aggregation/Komposition nur, wenn Teil-Ganzes-Beziehung wirklich erkennbar ist.
  5. Attribute/Methoden pro Klasse nur so viele, wie der Text nahelegt.

Übungen

Eine AntwortEine Rechnung besteht aus mehreren Positionen. Wird die Rechnung gelöscht, sollen auch die Positionen weg sein. Welche Beziehung?

Eine AntwortWelche Multiplizität bedeutet »mindestens einer«?

Eine AntwortWie wird eine abstrakte Klasse im Klassendiagramm hervorgehoben?

Eine AntwortWelche Sichtbarkeit bedeutet »nur für die Klasse und ihre Unterklassen«?

Verwandte Themen