Grundlagen der OOA

Eine der herkömmlichen und weitverbreiteten Methoden für die Umsetzung einer Aufgabenstellung in Form eines Programms ist die prozedurale Programmierung. Bei dieser Methode besteht ein Programm aus einer Folge von Anweisungen, welche es gilt in Blöcken zu Prozeduren oder Funktionen zusammenzufassen. Die Ausführung dieser Anweisungen erfolgt in der angegebenen Reihenfolge. Auffällig in dieser Art der Programmierung ist die Trennung von zwei existierenden Hierarchien, den Daten und den Funktionen bzw. Prozeduren. Ein gewaltiger Nachteil bei dieser Methode ist die Änderung einer schon gegebenen Datenstruktur, da sich damit auch Veränderungen durch die unterschiedlichsten Segmente des Programms erstrecken können.

Die Objektorientierung hebt die Teilung zwischen Daten und Prozeduren auf und vereinigt diese in dem sogenannten "Objekt", worunter man sich eine eigenständige, geschlossene Einheit vorstellen kann, miteinander.

Ein Objekt lässt sich anhand seiner klassischen Merkmale beschreiben. Tag für Tag nehmen wir mit unseren Sinnen unzählige Gegenstände um uns war, welche in unserem Leben eine gewisse Rolle spielen. Diese Gegenstände oder Objekte versuchen wir meistens anhand des Aussehens zu charakterisieren, an den Attributen bzw. Eigenschaften. Ein Mountainbike zum Beispiel wäre ein Gegenstand, welcher sich durch ein Metallgestell mit zwei Rädern, einem Lenker und einem Sattel beschreiben ließe, doch bei längerem Überlegen würden einem noch weitere Möglichkeiten für deren Beschreibung einfallen: Gewicht, Farbe, Reifengröße, Hersteller, Kaufpreis, Anzahl der Gänge etc.

Bei der Umsetzung eines Objektes "Mountainbike" am Computer müsste aber noch abgeschätzt werden, welche Eigenschaften für die Verwendung wichtig erscheinen. Im Beispiel eines Fahrradständers an der Schule wäre die Information wie Reifengröße, vielleicht auch noch ob es ein Damen- oder Herrenrad ist, recht sinnvoll, um eventuell eine Trend-Analyse durchzuführen.

In der realen Welt können für die Beschreibung eines Gegenstandes sehr viele Informationen zur Verfügung stehen, doch für die Implementierung sollte man versuchen diese so stark zu reduzieren, dass immer noch eine Überschaubarkeit für ein späteres Programm gegeben ist. All diese Informationen finden wir bei der Umsetzung eines Objektes in den Objektdaten wieder.

Mit den Objektmethoden, hier sind die verschiedenen Algorithmen zusammengetragen, welche die Benutzung eines Objektes ermöglichen, wird die eigenständige Funktionalität eines Objektes erreicht. Als Methoden wären bei einem Mountainbike zum Beispiel das Lenken, Bremsen, Anfahren, Klingeln, Abstellen, Anschließen bzw. Abschließen etc. möglich.

In diesem Zusammenhang soll die kommende Zeichnung den Aufbau des Objektes "Mountainbike" noch einmal grafisch verdeutlichen.

Jetzt ist es schon einmal möglich sich vorzustellen, aus welchen Bestandteilen ein Objekt zusammengesetzt ist, doch wurde oben mehrmals erwähnt, dass diese auch eigenständig sein sollen. Wie kann man sich dies vorstellen?

Wie in der wirklichen Welt zwei Menschen miteinander reden, halten auch die Objekte untereinander Kontakt. Es hört sich vielleicht komisch an, doch diese ausgetauschten Nachrichten, diese werden auch Botschaft oder Message genannt, sind von etwas geringerem Umfang. Diese Nachrichten dienen als Auslöser für eine Objektmethode und ermöglichen auf diesem Wege die eigenständige Reaktion eines Objektes auf eine gegebene Situation. Als Beispiel stellen wir uns einfach zwei Mountainbikes vor, welche auf dem gleichen Radweg aufeinander zufahren. Das eine Mountainbike schickt dem anderen eine Nachricht, dass es ohne eine Änderung weiterfahren wird. Mit dieser Information ist es demnach dem anderen Mountainbike möglich, eine unfallverhindernde Maßnahme vorzunehmen, indem es zum einen an den Rand fährt und dort anhält oder kurzfristig nur ausweicht, um dann anschließend zu seinem alten Kurs zurückzukehren.

Dies ist natürlich nur ein stark vereinfachtes Modell, denn in den meisten Situationen ist es kaum möglich die innere Funktionsweise eines Objektes zu wissen.

So wie wir uns jetzt das Objekt "Mountainbike" geschaffen haben, können wir natürlich auch noch andere Objekte erstellen, wie z.B. Citybike, BMX-Rad, Rennrad, Treckingrad usw., die die gleichen Daten und Methoden zur Verfügung haben wie das zuvor erstellte Objekt "Mountainbike".

Eigentlich ist es klar, was ich an dieser Stelle versuche, denn jeder würde jetzt bestimmt sagen, dass es sich dabei um Fahrräder handelt. Genauso wie wir die Gegenstände Bleistift, Buntstift, Tintenroller, Füller und Kugelschreiber unter dem Begriff Stifte zusammenfassen würden. Aber wie kommen wir dazu, bestimmte Begriffe mit einem Oberbegriff zu versehen? Wir schauen uns bestimmte Dinge an und ohne groß zu überlegen fassen wir diese zu einem übergreifenden Begriff zusammen, was wiederum von der menschlichen Denkweise herrührt. In dieser hierarchischen Anordnung, hierbei suchen wir nach Objekt-Gemeinsamkeiten, gliedern wir automatisch unsere Informationen.

Stifte sind meist länglicher Natur, haben eine bestimmte Größe und dienen zum Schreiben, die Fahrräder hingegen haben zwei Räder, ein Metallgestell, Sattel und Lenker. Nun ja, nicht gerade originell, aber für einen Zusammenschluss durchaus hilfreich.

Diese Art der Zusammenschlüsse oder besser gesagt die Zusammenfassung von Objekten wird in der objektorientierten Programmierung "Klasse" genannt. Eine Klasse ist von der theoretischen Sichtweise auch nichts anderes als ein Objekt, denn es fasst die einzelnen Attribute und Algorithmen der Objekte zu eigenen (übergreifenden) Daten und Methoden zusammen, auf welche die zusammengefassten Objekte wiederum Zugriff haben.

Mit der folgenden Grafik soll noch einmal der eben genannte Bezug zum Begriff Objekt und Klasse verdeutlichen.

Jetzt wollen wir eine weitere Klasse einfügen, welche in dem schon bekannten Muster (Baum) oberhalb unserer Klasse Fahrrad liegt und den Namen "Zweirad" trägt. Würde man jetzt dem Objekt Mountainbike die Frage stellen, ob es zwei Räder besitzt, schaut es erst einmal in die eigenen Objektdaten. Dort wird es natürlich nicht fündig und leitet die Frage über eine Nachricht an die Klasse Fahrrad weiter. Auch die Klasse kann nach der Einführung der Oberklasse darüber auch keine Auskunft geben und fragt die darüber liegende, welche nun endlich die Antwort zwei an das Objekt "Mountainbike" geben kann. Dieses Nachfragen und Benutzen von Daten bzw. auch Methoden von einer Klasse bzw. Oberklasse wird Vererbung genannt und stellt einen ganz wichtigen Bestandteil der Objektorientierung dar. Auch dieses kleine Beispiel wird kurz anhand einer Grafik dargestellt.

Ein großer Vorteil der Objektorientierung liegt in der Weiterbenutzung von schon benutzten Klassen und Objekten. Erweiterungen wie ein paar Methoden sind schnell eingefügt und können für eine Vielzahl von Anwendungen benutzt werden. Das oben erwähnte Beispiel des Fahrrades ließe sich unter anderem auch noch in einer Ampelsimulation, für Datenbanken von Versicherungen usw. weiterbenutzen.

Zum Schluss sollen die wichtigsten Aussagen von der Methode der Objektorientierung noch einmal zusammengefasst werden:

Weitere Thematiken zur Objektorientierung wären für den Einsatz im Unterricht möglich: Polymorphie, Mehrfachvererbung, Überschreiben von Methoden (engl. Overriding)


zurück zur Erläuterung des Gesamtkonzeptes
zurück zur Gesamtübersicht