Klasse (OOP): Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:


Eine '''Klasse''' besteht aus folgenden Teilen:
Eine '''Klasse''' besteht aus folgenden Teilen:
*Einer [[Klassenextension]]: Die Klassenextension enthält zu jedem Zeitpunkt alle Objekte, die der Klasse zugeordnet sind.


*Einem [[Klassenschema]]: Das Schema legt die [[Schnittstelle]] aller Objekte der Klassenextension fest. Das Schema beschreibt also die [[öffentlich]]en [[Methoden]], die auf jedes Objekt der Klassenextension angewendet werden können, und die [[Integritätsbedungung]]en,  die von jedem Objekt der Klassenextension jederzeit erfüllt werden.
*Einem [[Klassenschema]]: Das Schema legt die [[Schnittstelle]] aller Objekte der Klassenextension fest. Das Schema beschreibt also die [[öffentlich]]en [[Methoden]], die auf jedes Objekt der Klassenextension angewendet werden können, und die [[Integritätsbedungung]]en,  die von jedem Objekt der Klassenextension jederzeit erfüllt werden.
Zeile 10: Zeile 8:
*Beliebig vielen (0, 1, 2, ...) [[Klassenimplementierung]]en: 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. Die Implementierungen können sich jedoch in Hinblick auf Performanz-Aspekte unterscheiden.
*Beliebig vielen (0, 1, 2, ...) [[Klassenimplementierung]]en: 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. Die Implementierungen können sich jedoch in Hinblick auf Performanz-Aspekte unterscheiden.


*Einem Satz von öffentlichen Methoden, den sogenannten [[Klassenmethode]]n, zur Verwaltung der Klassenextension, d.h. zum Erzeugen, Verwalten und Zerstören von zugeordneten Objekten.
*Einer [[Klassenextension]]: Die Klassenextension enthält zu jedem Zeitpunkt alle Objekte, die der Klasse zugeordnet sind.
 
*Einem Satz von öffentlichen Methoden, den sogenannten [[Klassenmethode]]n, zur Verwaltung der Klassenextension, d.h. zum Erzeugen, Verwalten und Zerstören von zugeordneten Objekten.


=Bemerkungen=
=Bemerkungen=

Version vom 12. März 2010, 17:53 Uhr

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 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. Die Implementierungen können sich jedoch in Hinblick auf Performanz-Aspekte unterscheiden.
  • Einer Klassenextension: Die Klassenextension enthält zu jedem Zeitpunkt alle Objekte, die der Klasse zugeordnet sind.
  • 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. In derartigen Systemen wird an Stelle des Begriffs Klassenextension üblicherweise der Begriff Tabelle verwendet. Die dauerhafte Speicherung von Daten in Tabellen ist die wesentliche Aufgabe eines jeden Datenbanksystems.

Quellen

Siehe auch

Wikipedia: Klasse (objektorientierte Programmierung)


Dieser Artikel ist GlossarWiki-konform.