Klasse (OOP)

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg

Definition

Eine Klasse dient (im Sinne des objektorienten Paradigmas) dazu, die Schnittstellen und evtl. auch eine oder gar mehrere Implementierungen von "gleichartigen" Objekten auf einen Schlag ganz oder zumindest teilweise zu definieren.

Eine Klasse besteht aus folgenden Teilen:

  • Einer Klassenextension: Die Klassenextension enthält zu jedem Zeitpunkt alle Objekte, die der Klasse zugeordnet sind.
  • Beliebig vielen (0, 1, 2, ...) Klassenimplementierungen: Diese implementieren die im Klassenschema definierten öffentlichen Methoden teilweise oder vollständig und garantieren dabei die stete Erfüllung aller im Klassenschema definierten Integritätsbedingungen.
  • Einem Satz von öffentlichen Methoden, den sogenannten Klassenmethoden, zur Verwaltung der Klassenextension, d.h. zum Erzeugen, Verwalten und Zerstören von zugeordneten Objekten.

Bemerkungen

Klassen als Objekte

Eine Klasse selbst kann auch als ein spezielles Objekt aufgefasst werden. Als Objekt stellt eine Klasse öffentliche Methoden zur Verfügung. Typische Klassenmethoden dienen zur Erzeugung neuer Objekte (Konstruktoren), zur Vernichtung bestehender Objekte (Destruktoren) oder zur Auflistung der gerade bestehenden Objekte. Das heißt, Klassenmethoden dienen i.Allg. zur Manipulation der Klassenextension.

In vielen objektorientierten Systemen kann ein Programmierer Klassen um selbst definierte Zustandsvariablen und Methoden erweitern, wie andere Objekte auch.

Metaklassen

Eine Klasse, die dazu dient andere Klassen zu definieren, wird Metaklasse genannt. Eine Klasse, die dazu dient Metaklassen zu definieren, heißt entsprechend Metametaklasse. Und so weiter. Die meisten objektorientierten Systeme unterstützen jedoch keine Metaklassen. In diesen Systemen wird eine Klasse als ein spezielles Objekt aufgefasst, das direkt, d.h. ohne Zuhilfenahme einer anderen Klasse, definiert werden muss. Dies stellt jedoch keinen Wiederspruch zum hier verwendeten Objektbegriff dar (siehe dort insb. den Abschnitt 'Klassen').

Klassenextension

Die meisten objektorientierten Programmiersprachen verwalten die Klassenextension nur intern. Das heißt, ein Programmierer kann nicht direkt darauf zugreifen. Es ist allerdings problemlos möglich, die Verwaltung einer Klassenextension mit Hilfe von Klassenzustandsvariablen und -methoden zu realisieren.

Objektorientierte Datenbanksysteme machen die Klassenextension dagegen immer allen Benutzern zugänglich, die die entsprechenden Rechte haben. Die dauerhafte Speicherung von Objekten in so genannten "Tabellen" ist die wesentliche Aufgabe eines objektorientierten Datenbanksystems.

Siehe auch

Wikipedia: Klasse (objektorientierte Programmierung)