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
| Beziehung | Notation | Semantik |
|---|---|---|
| Assoziation | durchgezogene Linie | A »kennt« B. Einfache Verbindung. |
| Gerichtete Assoziation | Pfeil → | A weiß von B, aber nicht umgekehrt. |
| Aggregation | Linie mit offener Raute ◇ bei A | A »hat« B, aber B kann ohne A existieren (lose Teil-Ganzes-Beziehung). |
| Komposition | Linie mit gefüllter Raute ◆ bei A | A »besteht aus« B, B stirbt mit A (starke Teil-Ganzes-Beziehung). |
| Vererbung | Pfeil mit offener Spitze △ zu Oberklasse | »B ist ein A«. |
| Realisierung | gestrichelte Linie mit offener Spitze △ | »B implementiert Schnittstelle A«. |
| Abhängigkeit | gestrichelter Pfeil | A nutzt B temporär (z. B. als Parameter). |
3. Multiplizitäten
1– genau eins0..1– null oder eins (optional)*oder0..*– beliebig viele1..*– mindestens einsn– 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
- Substantive im Text → Kandidatenklassen.
- Verben zwischen ihnen → Assoziationen.
- Pro Beziehung: Multiplizität von beiden Seiten aus bestimmen.
- Aggregation/Komposition nur, wenn Teil-Ganzes-Beziehung wirklich erkennbar ist.
- 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«?