Klassen

Aus Informatik
Wechseln zu: Navigation, Suche

Eine Klasse ist allgemein eine Gruppe von Dingen, Lebewesen oder Begriffen der realen Welt.

Definition: Klasse, Fachkonzept-Klasse

In der objektorientierten Welt repräsentiert eine Klasse die Gemeinsamkeit einer Menge von Objekten mit denselben Attributen, demselben Verhalten (Methoden) und denselben Beziehungen. Eine Klassenbeschreibung dient als Schablone , die angibt, wie ein Objekt aussehen soll.

Eine Fachkonzept-Klasse realisiert die in einem Pflichtenheft festgelegten fachlichen Anforderungen.

Eine Klasse besitzt einen Mechanismus, um Objekte zu erzeugen. Jedes erzeugte Objekt gehört zu genau einer Klasse. Beziehungen zwischen Klassen (relationships) sind Vererbungsstrukturen und Assoziationen.

Im Beispiel der Firma ProfiSoft haben die Objekte KFZ-Zubehör GmbH und Schrottverwertung AG die gleichen Attribute und Methoden. Sie gehören daher zur Klasse Kunde.

Die Attribute einer Klasse müssen jedoch noch genauer spezifiziert werden, jedem Attribut muss ein Datentyp zugeordnet werden. Datentypen werden in UML-Notation getrennt durch einen Doppelpunkt hinter den Attributnamen angegeben.

Da auf die einzelnen Attribute nicht direkt zugegriffen werden darf (information hiding) müssen in Klassen spezielle Methoden vereinbart werden. Für das Schreiben von einzelnen Attributwerten wird als Methodenname setAttributname verwendet, für das Lesen der Methodenname getAttributname.

Jede Klasse benötigt Methoden, mit denen Objekte bzw. Instanzen dieser Klasse erzeugt werden können. Eine solche Methode wird als Konstruktor bezeichnet, und verwendet den Namen der Klasse. Im einfachsten Fall besteht ein Konstruktor aus dem Klassennamen gefolgt von einem Klammerpaar (). Wird an diese Methode eine Botschaft geschickt wird im Allgemeinen ein leeres Objekt erzeugt, d. h. die Attribute des erzeugten Objektes erhalten keine (oder die als default gesetzten) Attributwerte. Konstruktoren können im Klammerpaar aber auch Parameter angeben, z. B. Kunde(Name:String);. Beim Aufruf des Konstruktors wird dann ein Objekt erzeugt, welches die gewünschte Belegung des Attributes erhält.

In UML-Notation wird eine Klasse als dreigeteiltes Rechteck dargestellt. Im oberen Teil steht zentriert und fett der Klassenname. Im mittleren Teil sind die Attributnamen und ihre Datentypen angegeben, im unteren Teil die Methodennamen. Dem Methodennamen folgt ein Klammerpaar (). Besitzt die Methode einen Parameter, dann stehen diese im Klammerpaar. Übergibt eine Methode Ergebnisse zurück (= Funktion), dann wird der Typ des Ergebnisses, getrennt durch eine Doppelpunkt, hinter dem Klammerpaar angegeben.

Beispiel

Die Klasse Kunde besitzt zwei Konstruktoren. Das erste Objekt Kunde wurde mit dem Konstruktor kunde() erzeugt, das zweite mit dem Konstruktor kunde(Firmenname: String), konkret mit kunde("Schrottverwertung AG"). Zudem besitzt die Klasse Kunde die Methoden getAuftragssumme(): int, die als Ergebnis die aktuelle Auftragssumme zurück gibt, und setAuftragssumme(Auftragssumme: int), mit der der Wert des Attributes Auftragssumme geändert werden kann. Die Methoden sind als public gekennzeichnet.

Klasseundobjektekunde.png