Zusammenfassung zum Curriculum Fortgeschrittene Programmierung ◦ ?

#### Objektmodelle

- Die Objektorientierung fasst Prozeduren und Daten zu Einheiten, den Objekten zusammen. Mit Objekten lassen sich Gegenstände oder Konzepte oft besser in Computersystemen abbilden, da sie auch deren Verhalten modellieren können.

- Ein Objekt ist eine Abstraktion eines Gegenstandes oder eines Konzeptes. Die Gesamtheit der Eigenschaften und Werte beschreibt den Zustand eines Objektes. Die Methoden definieren sein Verhalten.

- Eine Objektklasse ist eine Beschreibung, anhand der man Objekte erzeugen kann. Ein Objekt, das aufgrund einer Klasse erstellt wurde, bezeichnet man als eine Instanz der Klasse.

- Ein Objektmodell beschreibt die Objekte einer Anwendung oder eines Anwendungspakets und ihre Beziehungen.

- Eine Objekthierarchie ist ein hierarchisch strukturiertes Objektmodell, in dem die Objekte meist in einer Teil-von-Beziehung zueinander stehen. Übergeordnete Objekte bezeichnet man als Eltern, untergeordnete als Kinder.

- Eine Auflistung ist ein Objekt, das eine Gruppe von Objekten verwalten kann. Es können Objekte zur Laufzeit hinzugefügt, entfernt und durchlaufen werden.

- Eine Objektvariable ist eine Variable, die einen Verweis auf ein Objekt speichern kann. Bei einer Zuweisung wird immer ein Verweis übergeben, nie ein Objekt. Beim Vergleich mit dem Is-Operator werden immer Verweise verglichen, nie die (Inhalte der) Objekte.

- Ein Objekttyp legt die Objektklassen fest, auf deren Instanzen eine Objektvariable verweisen kann. Ein spezifischer Objekttyp lässt Variablen nur auf Instanzen einer bestimmten Klasse verweisen. Ein allgemeiner Objekttyp lässt Variablen auf beliebige Objekte verweisen.

#### Klassen

- Benutzerdefinierte Klassen werden in VBA in Klassenmodulen beschrieben. Im Gegensatz zu Standardmodulen können von Klassenmodulen beliebig viele Instanzen erstellt werden. Formulare kann man als Klassen mit Benutzerschnittstelle auffassen, da man ebenfalls Instanzen davon erstellen kann.

- Instanzen benutzerdefinierter Klassen werden mit dem Schlüsselwort New erstellt. Als Argument nennt man den Objekttyp, und als Rückgabewert erhält man den Verweis auf das neue Objekt. Ein Objekt wird automatisch gelöscht, sobald kein Verweis mehr darauf existiert.

- Ein Collection-Objekt ist eine geordnete Folge von Elementen, auf die als Einheit Bezug genommen werden kann. Die Collection-Klasse ist vordefiniert und übernimmt in benutzerdefinierten Objektmodellen die Aufgabe der Auflistungen.

- Module trennen eine unsichtbare und unantastbare Implementation von einer sichtbaren und zugänglichen Schnittstelle. Über die öffentliche Schnittstelle bietet ein Modul Operationen und Daten an, die andere Module benutzen können. Alle Elemente, die nur vom Modul selbst in Anspruch genommen werden können, gehören zur privaten Implementation.

- Klassenmodule sind Module, die Objekte beschreiben. Ihre Schnittstellen bilden deren Eigenschaften und Methoden ab, ihre Implementationen modellieren deren Verhalten.

- Property-Prozeduren definieren Eigenschaften mit individuellen Schreib- und Leseberechtigungen. Den Benutzern erscheinen Property-Prozeduren als Variablen. Man kann Eigenschaften aber auch durch öffentliche Variablen beschreiben.

- Die Identität ist eine Eigenschaft, die jedes Objekt von allen anderen unterscheidet. Alle Objekte in VBA besitzen die Eigenschaft Me, in der sie einen Verweis auf sich selbst speichern.

- Methoden beschreibt man durch öffentliche Prozeduren. Zwei Methoden, die Klassenmodule bereits vordefinieren, sind der Konstruktor und der Destruktor.

- Die vier wichtigsten Merkmale objektorientierter Programmiersprachen sind: Kapselung, Abstraktion, Polymorphismus und Vererbung.

#### Bäume

- Ein Baum ist eine Menge von Knoten, die durch gerichtete Kanten zyklenfrei miteinander verbunden sind. Jeder Knoten, mit Ausnahme der Wurzel, hat genau einen Vorgänger, kann aber mehrere Nachfolger haben.

- Ein Binärbaum ist ein geordneter Baum, dessen Knoten höchstens zwei Nachfolger haben, einen linken und einen rechten. Ein Binärbaum heisst sortiert, wenn für jeden Knoten k gilt, dass die Inhalte der Knoten des linken Unterbaums alle kleiner und jene des rechten Unterbaums alle grösser sind als der Inhalt von k selbst.

- Die Höhe eines Baumes entspricht der Anzahl Verweise, denen man maximal folgen muss, um zu einem Blatt zu gelangen. Sie ist ein Mass für die Geschwindigkeit, mit der man im Schnitt auf die Elemente eines Baumes zugreifen kann.

- Ein Baum heisst ausbalanciert, wenn für jeden Knoten gilt, dass sich die Anzahl der Knoten in den beiden Unterbäumen höchstens um Eins unterscheiden. Die meisten Algorithmen arbeiten nur auf möglichst ausbalancierten Bäumen effizient.

- In verketteten Strukturen halten die Elemente neben dem eigentlichen Inhalt Verweise auf ihre Nachfolger. In doppelt verketteten Strukturen verweisen sie zusätzlich auf ihre Vorgänger. Einfüge- und Löschoperationen können in verketteten Strukturen effizienter realisiert werden als in Datenfeldern.

- Rekursive Algorithmen müssen immer einen Basisfall und eine Reduktion haben. Der Basisfall beschreibt die Bedingungen, welche die Rekursion abbrechen und muss vor der Reduktion geprüft werden. Die Reduktion enthält die rekursiven Aufrufe. Sie muss die Aufgabe vereinfachen.

- Als Traversierung bezeichnet man einen Vorgang, der ausgehend von der Wurzel die Knoten eines Baumes besucht und jeden einmal ausgibt. Die wichtigsten Traversierungsverfahren für sortierte Binärbäume sind die Inordnungs-Tiefentraversierung und die Breitentraversierung.

©Born