Objektorientierte Programmierung :)


Bevor man objektorientierte Software entwicklen kann, muss man sich natürlich die Frage stellen, was ist objektorientierte Software. Also vom Prinzip her ist die Übertragung der Denkweise der Menschen auf die Funktionsweise von Programmen.
Mit Denkweise ist in diesem Fall gemeint, wie ein Mensch Probleme mit komplexerem Sachverhalt lässt. Wie löst also ein Mensch komplexe Sachverhalte? Der Mensch löst diese in der Regel in dem diese abstrahiert, und dadurch Sachverhalte auf das Wesentliche komprimiert.
Als Beispiel sei hier der Umgang mit Schrauben und Schraubendreher erklärt. Wurde dem Menschen einmal gezeigt, wie er eine bestimmte Schlitzschraube mit einem Schlitzschraubendreher eindreht, kann er durch abstrahieren auch jede andere Schlitzschraube eindrehen. Denn er weiss, unabhängig von z.B. Grösse und Farbe der Schraube, dass durch rechtsdrehen die Schraube eingedreht wird
Dieses Szenario läst sich beliebig weiterführen, so wird er, das gleiche Verfahren auf eine Kreuzschlitzschraube anwenden können. Mit dem Grundwissen über Schrauben und Schraubendreher, wird er somit in der Lage sein, alle diese Schraubentypen unabhängig von den für ihn unwichtigen Eigenschaften, wie Farbe, Grösse etc., einzudrehen. Dieses Verhalten ist nur möglich, da der Mensch die Sachverhalte abstrahiert und klassifiziert.
Die Effiziens des menschlichen Denken beruht also zu einem Teil darin, dass er sich über eine Klassifizierung die Sachverhalte erklären kann, ohne um es mal etwas anders ausdrücken „Speicher“ für Unwichtigkeiten zu verschwenden.
Fährt man den Gedanken weiter, so kann man sich vorstellen, das im menschlichen Gehirn nun eine Klasse vorhanden ist, welche z.B. Schrauben heist. Zu dieser Klasse wiederum gibt es zwei Unterklassen und Schlitz- und Kreutzschlitzschrauben. Sie besitzen alle Eigenschaften, die für eine Schraube gelten, diese Unterklassen erben also Eigenschaften und Methoden, der Oberklasse Schrauben. Sieht der Mensch jetzt eine Schraube, so ist diese nur noch ein Objekt einer bestimmten Klasse, welches durch seine Eigenschaften charakterisiert wird,
und auf welches er in der Lage ist die Methoden eindrehen und ausdrehen ausführen kann. So könnte dann Objekt der Klasse Schlitzschrauben wie folgt aussehen: Kreuzschlitzschraube, Länge = 20 mm, Durchm. = 2 mm, Material = Kupfer, Farbe = Schwarz