Klasse (OOP)

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Version vom 28. Juli 2005, 18:24 Uhr von Kowa (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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:

  • Beliebig viele (d.h. keine, eine oder mehrere) Klassenimplementierungen: Diese implementieren die im Klassenschema definierten öffentlichen Methoden teilweise oder vollständig und garantieren dabei die stete Erfüllung aller im Klassenschema defnierten Integritätsbedingungen.
  • Eine Klassenextension: Die Klassenextension enthält zu jedem Zeitpunkt alle Objekte, die der Klasse zugeordnet sind.
  • Einen Satz von öffentlichen Methoden, den sogenannten Klassenmethoden, 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 keien Wiederspruch zum hier verwendeten Objektbegriff dar (siehe dort insb. den Abschnitt 'Klassen').

Siehe auch

Wikipedia: Klasse (objektorientierte Programmierung)