Fachkonzept - Klasse

Was ist eigentlich eine Klasse?

Der Begriff "Klasse" wird hier im Sinne von Klassifizieren benutzt. Du weißt sicher, was das heißt: Wenn man klassifiziert, dann versucht man, Gemeinsamkeiten von Objekten herauszustellen.

Schuhe, erstes Beispiel[1]
Schuhe, weiteres Beispiel[2]
Schuhe gezeichnet von vanGogh[3]

Die Klasse "Schuh" beschreibt Objekte, die man als Fußbekleidung nutzt - und somit an- und ausziehen sowie tragen kann - und die bestimmte Eigenschaften (wie Modell, Größe, Farbe und Verschluss) aufweisen.

Klassendiagramm

Wer Schuhe herstellen will, muss sich (mehr oder weniger) an der Klassenbeschreibung für Schuhe orientieren, damit das, was hergestellt wird, auch wirklich Schuhe sind. Es macht sicher keinen Sinn, sich an der Klassenbeschreibung für Hosen oder Pullover zu orientieren. Eine Klassenbeschreibung für Schuhe kann somit als eine Art Bauplan für Schuhe aufgefasst werden.

Diese Sichtweise können wir verallgemeinern und auf Software-Objekte übertragen. Damit (Software-)Objekte einer bestimmten Sorte erzeugt werden können, benötigt man eine passende Klassenbeschreibung in Form eines Bauplans.

Also, Klassen(beschreibungen) können als Baupläne für Objekte angesehen werden.

Fachkonzept Klasse

Eine Klasse ist ein Bauplan für Objekte. Dieser Bauplan legt genau fest, welche Attribute die zu konstruierenden Objekte haben sollen und welche Methoden sie ausführen können sollen.

Das folgende Klassendiagramm zeigt die Struktur der Klasse Konto, die als Bauplan für Konto-Objekte dienen soll.

Klassendiagramm

Objekte der Klasse Konto verfügen also über die Attribute nr, stand und inhaber. Zudem können sie die Methoden einzahlen(...) und auszahlen(...) ausführen. Die Methode Konto(...) ist eine besondere Methode, deren Bedeutung unten geklärt wird.

Beachte, dass im Klassendiagramm auch die Typen der Attribute und Parameter spezifiziert sind. Nur der Typ des Attributs inhaber ist vorerst nicht festgelegt, da wir uns um die Verwaltung der Daten des Kontoinhabers erst in einem der folgenden Abschnitte kümmern werden.

Objekt als Exemplar einer Klasse

Ein Objekt (als Exemplar einer Klasse) ist eine Einheit, die nach dem Bauplan der zugeordneten Klasse erzeugt wurde. Ein Objekt verfügt somit über die Attribute, die in der Klasse festgelegt sind. Diesen Attributen können - im Unterschied zur Klasse - Attributwerte zugewiesen werden. Ein Objekt kann zudem sämtliche Methoden der Klasse ausführen. Ausgenommen bleibt hier nur die Methode, deren Name mit dem Klassennamen übereinstimmt (s. u.). Objekte können mit Namen versehen werden, über die sie dann gezielt angesprochen werden können.

Das folgende Objekt- und Klassendiagramm zeigt eine Situation, in der zwei verschiedene Konto-Objekte erzeugt wurden.

Objekt- und Klassendiagramm

Beachte, dass man bei der Darstellung der Objekte die aktuellen Attributwerte angibt. Beachte auch, dass man die von den Objekten ausführbaren Methoden weglässt, da sie durch die Zuordnung zur Klasse klar sind.
Objektnamen werden unterstrichen und mit Doppelpunkt der zugehörige Klassennamen angegeben (z.B. k1: Konto). Ist die zugehörige Klasse aus dem Kontext klar ersichtlich, kann der Klassennamen beim Objekt auch entfallen.

Erzeugung und Vernichtung von Objekten

Ein Software-Objekt hat - wie viele Objekte der realen Welt - eine bestimmte Lebensdauer. Es muss erzeugt werden, bevor es in Aktion treten kann, und kann auch wieder vernichtet werden.

Zur Erzeugung von Objekten verfügt eine Klasse über eine spezielle Methode, die sogenannte Konstruktormethode.

In einem Klassendiagramm wird eine Konstruktormethode dadurch gekennzeichnet, dass sie denselben Namen wie die Klasse selbst trägt. Oft wird diese spezielle Methode in Klassendiagrammen aber auch weggelassen. Beachte, dass ein Objekt eine Konstruktormethode nicht ausführen kann.

Die oben im Objekt- und Klassendiagramm gezeigte Situation lässt sich wie folgt herstellen. Eine Zuweisung der Gestalt k1 = Konto(5) ruft den Konstruktor der Klasse Konto auf und erzeugt so ein Objekt der Klasse Konto (hier mit der Kontonummer 5). Zusätzlich bindet diese Zuweisung den Namen k1 an das neu erzeugte Objekt. Entsprechend erzeugt eine Zuweisung k2 = Konto(8) ein Objekt der Klasse Konto (hier mit der Kontonummer 8) und bindet es an den Namen k2.

Zur Vernichtung von Objekten verfügt eine Klasse über eine sogenannte Destruktormethode.

Moderne Programmiersysteme sorgen selbst für die Vernichtung nicht mehr benötigter Objekte, so dass man sich um diese Vernichtung in der Regel nicht kümmern muss.

Quellen

X

Fehler melden

X

Suche