12.5.3 OOP - Klassendiagramm


Bei der objektorientierten Programmierung werden in einem Objekt sowohl Attribute als auch Operationen gemeinsam gespeichert.

Ein Objekt wird während des Programmablaufs mit Hilfe des Schlüsselworts new aus einer Objekt-Schablone erzeugt. Die Objekt-Schablone ist im Quellcode des Programms notiert und wird auch Klasse genannt.

Eine Klasse, die man in einem Projekt als Objekt-Schablone nutzt, kann grafisch in einem Klassen-Diagramm dargestellt werden.

Zum Beispiel wird die Klasse "punktKlasse" aus dem letzten Kapitel wie folgt in einem Klassen-Diagramm dargestellt:

Ein Klassendiagramm besteht aus:

  • dem Klassen-Namen (hier "punktKlasse")

  • den Klassen-Attributen (hier "xkoord", "ykoord, "durchmesser" und "farbe"),

  • und den Klassen-Operationen (hier die Operation "zeichnen()").

Die Klasse wird dann im Quellcode eines Programms implementiert. In JavaScript sieht die Implementierung der Klasse "punktKlasse" wie folgt aus:

Quellcode:

class punktKlasse {
  constructor(xkoord, ykoord, durchmesser, farbe) {
    this.xkoord = xkoord;
    this.ykoord = ykoord;
    this.durchmesser = durchmesser;
    this.farbe = farbe;
  }
  zeichnen() {
    strokeWeight(this.durchmesser);
    stroke(this.farbe);
    point(this.xkoord, this.ykoord);
  } 
}

Die Operation "constructor" nimmt die Parameter entgegen, mit welchen ein Objekt angelegt werden soll und speichert diese in dem neu angelegten Objekt.

Während des Programmablaufs können auf der Basis einer Klasse beliebig viele Objekte angelegt werden. Das Schlüsselworts "this" erzeugt einen Verweis auf das gerade angelegte Objekt, so dass die Übergabe-Parameter im Arbeitsspeicher beim richtigen Objekt gespeichert werden:

  • let p1 = new punktKlasse(20, 50, 30, "crimson");

  • let p2 = new punktKlasse(140, 210, 20, "steelblue");

Mit diesen beiden Anweisungen wird jeweils ein Objekt im Arbeitsspeicher angelegt. Bei jedem Objekt werden in den Attributen verschiedene Werte gespeichert. In der Objekt-Schablone sorgt das Schlüsselwort "this" dafür, dass die richtigen Attribute beim richtigen Objekt gespeichert werden.

Bis zum Abitur 2021 wurden Klassen-Diagramme mit einfachem Aufbau in der Abiturprüfung vorgelegt. Es folgt ein Beispiel aus dem Grundkurs-Abitur im Jahr 2021:

Quelle: https://za-aufgaben.nibis.de/ - Fach Informatik - Jahrgang 2021 - Block 1A

Im Klassendiagramm des Abiturs wird bei den Attributen und Operationen mit Rückgabewert immer der Typ des Attributs angegeben, auch bei primitiven Datentypen.

Erstmals im Abitur 2022 wurden in der Abiturprüfung in den Klassendiagrammen auch Konstruktor-Operationen und Getter- und Setter-Operationen notiert. Es folgt ein Beispiel aus dem Grundkurs-Abitur im Jahr 2022:

Quelle: https://za-aufgaben.nibis.de/ - Fach Informatik - Jahrgang 2022 - Block 1C

  • Wenn eine Konstruktor-Operation mit leerer Klammer angegeben ist, dann muss man bei der Implementierung eine Standardbelegung der Parameter einbauen.

  • Die Getter- und Setter-Operationen sollen dafür sorgen, dass man nicht direkt auf die Attribute zugreift.

Ein solches kompliziertes Klassendiagramm kann wie folgt implementiert werden:

In einem neuen Fenster starten: Komplizierte Klasse


Ein Klassendiagramm und die Implementierung für die Klasse "Position" wäre vor 2022 wie folgt gewesen:

Das einfache Klassendiagramm kann wie folgt implementiert werden:

In einem neuen Fenster starten: Einfache Klasse

Welchen Zweck die Verkomplizierung für das Abitur haben soll, bleibt unklar. Es muss aber damit gerechnet werden, dass in künftigen Abiturprüfungen Klassendiagramme sowohl in der einfachen als auch in der komplizierten Notation vorgelegt werden.