Literatur

Was ist eine Klasse?

Ein Objekt ist eine genaue Beschreibung z.B. unseres Kugelschreibers. Die Attribute (Eigenschaften) haben  einen Wert bzw. einen festen Zustand. Unser Kugelschreiber hatte beispielsweise die Außenfarbe weiß und die Schreibfarbe schwarz.

Die Klasse hingegen ist eine Verallgemeinerung aller Kugelschreiberobjekte. Sie beschreibt, welche Attribute ein Kugelschreiber haben kann ohne diesen einen Wert zuzuweisen. Erst das Objekt repräsentiert den Gegenstand Kugelschreiber, den wir vor uns liegen haben mit  all seinen Eigenschaften.

Ein weiteres Beispiel ist die Klasse "Mensch". Bereits vor der Geburt weiß man, über welche Eigenschaften (z.B. Augenfarbe, Größe, Geschlecht) und Funktionen (z.B. Sprechen) ein Mensch später verfügen wird, man weiß jedoch nicht, welchen Wert diese haben. Eine einzelne Person entspricht dann einem Objekt der Klasse "Mensch" (auch wenn der Begriff Objekt in dem Zusammenhang vielleicht etwas unpassend ist), dessen Eigenschaften bei der Entstehung gesetzt werden (z.B. Augenfarbe=braun).

In der objektorientierten Programmierung  gehört also jedes Objekt zu einer Klasse. Dieses besitzt die Attribute (Eigenschaften) und die Methoden (Interaktionen) dieser Klasse.

In der Softwaretechnik spricht man auch davon, dass Klassen einen eigenen Datentypen (siehe Glossar o. Kapitel Java-Datentypen) bilden. Da jedes Attribut durch einen Datentyp beschrieben wird, kann eine Klasse auch Attribute beeinhalten, die selber wieder Objekte einer anderen oder sogar der eigenen Klasse sind. Als Beispiel hatten wir im Kapitel "Was ist ein Objekt?" die Klasse Adresse angeführt, die die Attribute Straße, Hausnummer, PLZ und Ort hat. Unsere Klasse Mensch kann dann zur besseren Strukturierung der Daten  ein Attribut "Anschrift" beinhalten, das wiederum ein Objekt der Klasse Adresse ist.

Wenn wir bei der Klasse Mensch bleiben, könnte man sich z.B. zum Aufbau eines Stammbaums außerdem die Attribute "Vater" und "Mutter" denken, die selber auch wieder zur Klasse Mensch gehören und ebenfalls wieder mit Attributen wie Name und Adresse ausgestattet sind.

Denken Sie einmal darüber nach, wie Sie Ihr Umfeld in Klassen aufteilen können und Sie werden sehen, dass Sie nur von Objekten von allgemeinen Klassen umgeben sind. So sehen Sie, dass die Objektorientierung eigentlich nur eine logische Schlussfolgerung unseres Umfeldes ist.