Klasse (OOP): Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Kowa (Diskussion | Beiträge)
Zeile 17: Zeile 17:
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.
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 Widerspruch zum hier verwendeten [[Objekt (OOP)|Objektbegriff]] dar (siehe dort insb. den [[Objekt (OOP)#Klassen|Abschnitt 'Klassen']]).
Dies stellt jedoch keinen Widerspruch zum hier verwendeten [[Objekt (OOP)|Objektbegriff]] dar (siehe dort insb. den [[Objekt (OOP)#Klassen|Abschnitt 'Klassen']]).
In vielen objektorientierten Systemen kann ein Programmierer Klassen
um selbst definierte Zustandsvariablen und Methoden erweitern, wie andere Objekte auch.


==Klassenextension==
==Klassenextension==

Version vom 23. Februar 2011, 16:09 Uhr

Definition (von W. Kowarschick)[1]

Eine Klasse dient (im Sinne des objektorienten Paradigmas) dazu, die Schnittstellen und evtl. auch eine oder gar mehrere Implementierungen von „gleichartigen“ Objekten ganz oder zumindest teilweise festzulegen.

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 deklarierten Methoden teilweise oder vollständig und garantieren dabei die stete Erfüllung aller im Klassenschema definierten Integritätsbedingungen. Unterschiedliche Implementierungen können sich in Hinblick auf Performanz-Aspekte unterscheiden.
  • den Klassenmethoden: Eine Klasse verhält sich wie ein spezielles Objekt) und kann daher eigene (Klassen-)Methoden und (Klassen-)Attribute enthalten. Überlicherweise gibt es zumindest Methoden zur Verwaltung der Klassenextension, d.h. zum Erzeugen (Konstruktoren) und evtl. auch zum Zerstören (Destruktoren) von zugeordneten Objekten.

Bemerkungen

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 Widerspruch 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.