8. Objektorientierte Programmierung | ||||||
|
||||||
8.3 Objekte
Eine Variable von einem "tagged"-Verbundtyp wird als Objekt bezeichnet. Jedes Objekt ist eigenständig, d. h. es hat eigene interne Daten, die es von anderen Objekten derselben Klasse unterscheidet. Punkt_1 und Punkt_2 sind unterschiedlich: Punkt_1.x hat den Wert 5 Punkt_1.y hat den Wert 7 Punkt_1.Farbe hat den Wert "undefiniert" Punkt_2.x hat den Wert 2 Punkt_2.y hat den Wert 4 Punkt_2.Farbe hat den Wert "undefiniert" Die Objekte "Punkt_1" und "Punkt_2" unterscheiden sich dadurch, daß sie eigene Informationen über die Koordinaten und die Farbe besitzen. Allen Objekten gemeinsam sind die Datenstruktur und die zugehörigen Operationen. Jedes Objekt besitzt die gleichen Komponentenfunktionen wie alle anderen Objekte derselben Klasse. Um Seiteneffekte zu vermeiden, darf die Manipulation von lokalen Daten der Klasse ausschließlich über die Komponentenfunktionen möglich sein. Als Programmierer stellt man dieses sicher, indem man diejenigen Daten, die verborgen werden sollen, entweder in der Spezifikation mit Hilfe des Schlüsselwortes "private" als privat kennzeichnet oder sie im Rumpf eines Paketes plaziert. Beachte: Eine Klasse wird in Ada 95 nicht durch eine spezielle Klassenanweisung erzeugt, sondern die vorhandenen Sprachmittel von Ada 83 (Verbundtypen) werden mit zusätzlichen Eigenschaften versehen. Eine Verbundtyp-Deklaration wird mit dem Zusatz "tagged" versehen, um diese Anweisung als Klasse (genauer: als Basisklasse) kenntlich zu machen. Die Erweiterbarkeit von Verbundtypen in Ada 95 wird als "Programmierung durch Erweiterung" bezeichnet.
Ein Zähler für die Anzahl von dynamisch angelegten Objekten, der auch als Basis zur Erstellung einer Identifikationsnummer für einzelne Objekte benutzt werden kann. |
||||||
|