Index

Datentypen (12)


Objekt-Typ

1. Einführung

Objekte sind gewissermaßen Abbilder der Realität in die virtuelle Welt von Datenverarbeitungsmaschinen. Wenn wir mit Objekten arbeiten wollen, so brauchen wir nur die realen Objekte zu betrachten und zu untersuchen auf ihre Eigenschaften und Fähigkeiten hin.

Objekte besitzen also zwei unterschiedliche Komponenten:

  1. Eigenschaften, die man Attribute nennt.
  2. Fähigkeiten, die man Methoden nennt.

Die Attribute werden durch Variablen dargestellt, die Methoden bestehen aus Prozeduren und Funktionen.
Ein wichtiges Prinzip bei Objekten ist das Geheimnisprinzip. Dies bedeutet, dass ein Objekt nach außen hin gekapselt ist. Man kann also in ein Objekt nicht einfach hineinschauen, also seine Eigenschaften auslesen oder gar manipulieren. Dies bedeutet, dass kein Zugriff auf die Variablen des Objektes besteht.
Die Attribute können nur mit speziellen Methoden gelesen oder gesetzt werden. Der Vorteil liegt darin, dass der Datenstrom überprüft werden kann. Ungültige Werte für die Attribute können somit z.B. abgewiesen werden.

Die objektorientierte Programmierung bietet aber noch weitere Vorteile. Gleichartige Objekte können zu Objektklassen zusammgefasst werden. Man definiert die Attribute und Methoden für die Klasse und jedes Objekt, das davon abgeleitet wird, besitzt diese automatisch. Eine Klasse stellt damit eine Schablone dar für Objekte mit bestimmtem Aussehen.
Von Objektklassen können schließlich auch Unterklassen abgeleitet werden, die z.B. über zusätzliche Attribute oder Methoden verfügen, aber dennoch alle Eigenschaften der Oberklasse bereits besitzen. Man sagt auch, diese erben die Eigenschaften und Fähigkeiten der Oberklasse.

Die einzelnen Objekte haben indiviuelle Eigenschaften. Man nennt sie auch Instanzen der Objektklasse.

Das Vorgehen ist also folgendermaßen:
Man deklariert zunächst die Objektklasse als Datentyp und erzeugt dann die einzelnen Objekte als Instanzen davon. Hierunter versteht man dann jeweils eine (Objekt-)Variable des Objektklassentyps, die mit einer speziellen Methode der Objektklasse erzeugt wird. Diese Methode nennt man auch einen Konstruktor. Hierbei gibt es zwei Möglichkeiten. Es kann zunächst einfach ein "leeres" Objekt erzeugt werden, d.h. seine Eigenschaften sind nicht spezifiziert und werden erst nachfolgend festgelegt; oder diese werden bei der Erzeugung bereits als Parameter dem Konstruktor mitgeliefert.

Während ein Objekt "weiß" zu welcher Objektklasse es gehört, weiß eine Objektklasse nicht, über welche Objekte sie verfügt.

Im Zusammenhang mit der objektorientierten Programmierung tritt eine weitere Technik in Erscheinung:
Objekte werden zu Aktionen angeregt durch das Senden von Botschaften an das Objekt. Erhält ein Objekt eine Botschaft, auf die es reagieren kann, so führt es diese Tätigkeit aus und sendet gegebenenfalls ebenfalls Botschaften an andere Objekte oder an den Absender.

Für eine übersichtliche Darstellung der Objektklassen, Objekte und der Zusammenhänge zwischen ihnen benutzt man eine graphische Darstellung, die UML-Notation (Unified Modeling Language).

 

[Index] [Zurück/Zeiger-Typ] [Fortsetzung/UML]


Autor: Jürgen Dehmer
Letzte Änderung: 11. März 2001