Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Abstrakte Datentypen, Klassen und Objekte 16.1 Abstrakte Datentypen, Klassen und Objekte »One way of thinking of a class is as an abstract data type plus inheritance and polymor phism.« (Steve McConnell in »Code Complete 2«, Microsoft Press) Steve McConnell beschreibt abstrakte Datentypen im oben genannten Buch als eine Samm- lung von Daten und Operationen, die mit diesen Daten arbeiten, wobei die Operationen der Anwendung den Zugriff auf die enthaltenen Daten und deren Änderung erlauben. Nimmt man das einleitende Zitat hinzu und zieht die fehlenden Möglichkeiten der Vererbung und Polymorphie unter VBA ab, ergibt sich Folgendes: Unter VBA entspricht ein abstrakter Datentyp einer Klasse. Außen vor bleibt dabei die Möglichkeit der Schnitt stellenvererbung unter VBA (mehr dazu in »Schnittstellen und Vererbung« ab Seite 884). Ein abstrakter Datentyp ist im Gegensatz zu Basisdatentypen wie String, Integer oder Long oder zusammenge- setzten Datentypen (etwa aus Basisdatentypen zusam men gesetzten Strukturen) eine Beschreibung einer Schnittstelle zu Daten oder Da ten struk turen und deren Operationen. Die Betonung liegt dabei auf Beschreibung, denn ein abstrakter Datentyp ist unabhän- gig von der Implementierung in einer konkreten Pro gram miersprache. Ein abstrakter Datentyp zeichnet sich außerdem durch folgende Ei gen schaften aus: » » Die Kapselung sorgt für das Verbergen der Realisierung der enthaltenen Opera- tionen. Die Kapselung verhindert unkontrollierte Zugriffe auf die enthaltenen Daten und sorgt damit für deren Integrität; die Daten können nur über die definierte Schnittstelle geändert werden. Der abstrakte Datentyp ist universell einsetzbar und unabhängig von der Im ple- mentation. » »Abstrakt« sind abstrakte Datentypen, weil sie reale Objekte modellieren und dabei nur ihre wichtigsten Eigenschaften und Funktionen berücksichtigen. Durch Abstrahieren werden komplexe Strukturen und Zusammenhänge vereinfacht; erst dadurch lassen sich komplizierte Objekte datentechnisch abbilden. Eine Klasse ist eine Implementierung eines abstrakten Datentyps in einer bestimmten Programmiersprache wie beispielsweise VBA. Die Implementierungsdetails werden da- bei in einem Klassenmodul festgelegt. Die Gemeinsamkeiten zwischen dem abstrakten Datentyp und der Klasse beschränken sich dabei auf die fest definierte Schnittstelle, die aus den Methoden und Eigenschaften besteht. Die Implementierung kann und wird ver- mutlich in jeder Programmiersprache anders aussehen. Die Klasse kann neben den für die Realisierung der Schnittstelle notwendigen Methoden und Eigenschaften natürlich 849