
Go backward to ...als visuelle Sprache
Go up to Die Sprache PROGRAPH
Go forward to ...als datenflußorientierte Sparche
...als objektorientierte Sprache
PROGRAPH unterstützt objektorientiertes Programmieren. Klassen in PROGRAPH
bestehen aus Attributen und Methoden. Dem Programmierer steht eine
vordefinierte Klassenbibliothek zur Verfügung. So kann ein Applikation
komfortabel auf diese Klassenbibliothek aufsetzen. Allerdings besteht PROGRAPH nicht auf einen objektorientieren Progammierstil, sondern ermöglicht vielmehr auch eine prozedurale Programmierung. Dabei wurde nicht, wie bei anderen Hybridsprachen (z.B. Turbo-Pascal) ausgehend von einer prozeduralen Programmiersprache, ein objektorientierter Zusatz beigefügt, beispielsweise durch Typdefinitionen. Hier wurde der objektorientierte Ansatz so erweitert, daß auch eine mehr oder weniger prozedurale Programmierung möglich ist. So können z.B. neben den Methoden in den einzelnen Klassen auch universelle Methoden erstellt werden, die keiner Klasse zugeordnet werden.
Ein wesentlicher Unterschied zwischen PROGRAPH und anderen objektorientierten
Sprachen besteht darin, daß Messages nicht an Objekte, sondern an die
jeweilige Klasse geschickt werden. Dies führt dazu, daß man das "aktuelle"
Objekt als Parameter übergeben oder auf andere Weise herausfinden muß, während
es z.B. in C++ als impliziter, erster Parameter immer vorhanden ist (this).
Die Objekte spielen in PROGRAPH eine bedeutende Rolle. Sie sind aber nicht die
aktiven Elemente, wie man sie sich in der rein objektorientierten
Programmierung vorstellt. So werden in PROGRAPH einige wichtige Prinzipien der
Objektorientierung verletzt, z.B. information hiding über private Datenelemente, und eine reine Programmierung in diesem Stil kaum bzw. nur mit Einschränkungen möglich ist.
Darstellung:
Objektklassen: sechseckige Icons
Attribute: Dreiecke
Methoden: Vierecke
Die durch Vererbung entstehende Klassenhierarchie wird in PROGRAPH grafisch dargestellt:
Vererbung von Attributen und Methoden erfolg in bekannter Art und Weise, wobei jedoch eine Mehrfachvererbung(wie beispielsweise in C++) in PROGRAPH nicht möglich ist.Geerbte Attribute und Methoden können neu definiert werden.
Dies wir in PROGRAPH mit den Begriffen
Den geerbten Attributen kann in der Unterklasse ein
neuer Datentyp zugewiesen werden.
Das ``method overshadowing'' kann in PROGRAPH auf zwei
verschiedene Arten geschehen:
komplettes Ersetzen der geerbten Methoden
Erweitern der geerbten Methoden
bezeichnet.
Universal method reference

Universelle Methoden sind keiner bestimmten Klasse zugeordnet und
sind u.a. dafür geeignet, Algorithmen zu implementieren, die von
mehreren Methoden benötigt werden(z.B. Sortieralgorithmen).
Explicit-class method reference

Bei dieser Art des Aufrufs einer Methode wird die Klasse, in der die
Methode zu finden ist, explizit angegeben. Sie wird vom Methodennamen
mit einem Schrägstrich abgetrennt.
Context-determined method reference

Diese Aufrufart kann verwendet werden, wenn aufrufende und
aufzurufende Methode in der gleichen Klasse definiert sind. Zwei
Schrägstriche vor dem Methodennamen kennzeichnen diese Aufrufart.
Data-determined method reference

In diesem Fall wird nach der Methode in der Klasse gesucht, der das
Objekt angehoert, das am weitesten links stehender Parameter
übergeben wird.
Attribute einer Klasse sind typbehaftet. Typen können sowohl:
-Basistypen als auch
-Klassen sein.
Initialisierungs-Methode

Der Name der Initialisierungsmethode entspricht dem Namen der Klasse.
Get-/Set-Methode

Get- und Set-Operationen erlauben das Lesen und Schreiben von
Objektattributen. Eine Get- und Set-Operation gilt dabei immer nur für
ein Attribut eines Objekts.
Persistents

Persistens sind spezielle Elemente, die über die Lebensdauer des
Programms hinweg existieren. Sie werden zusammen mit dem aktuellen
Zustand der Anwendung abgespeichert. In Persistents können Objekte
beliebigen Typs gespeichert werden.
schaefer@fh-heilbronn.de
