Objektorientierte Programmierung

Allgemeines zur OOP

by Dr. M. Halfpap

Zurück zur Hauptseite


Klassische Prog. :  Programme ergreifen die Initiative und rufen Teile der 
                    Laufzeitprogramme auf

Objektorientiert :  REAKTION auf sog. "Nachrichten" vom Benutzer, System oder
                    anderen Programmen: CALL-BACK Strukturen


Die Objekte tauschen miteinander "Nachrichten" aus, auf die sie reagieren. Ihre
Reaktion wird durch ihre METHODEN beschrieben. Weiter können sie auch einen
ZUSTAND besitzen ( z.B. die x,y - Position oder sichtbar / unsichtbar ). 

Die sog. INSTANZVARIABLEN beschreiben den internen Zustand, der interne private 
Zustand wird auch mit ENCAPSULATION, dem Prinzip der Kapselung beschrieben. 

Die Idee ist nun, daß dieser Zustand nur durch das Objekt selbst mit Hilfe sei-
ner Methoden verändert werden kann. Wie allg. bei modularer Programmierung ist 
die strikte Trennung zwischen IMPLEMENTATION und DEFINITION vorgesehen.


Weitere wichtige Begriffe :


Kapselung           Vereinigung der Daten und der sie verändernden Methoden in 
                    einer Struktur

Klasse              alle Objekte, die gleiche Methoden besitzen, sind zu einer
                    Klasse zusammengefaßt

Polymorphie         Objekte unterschiedlicher Klassen können auf Nachrich-
                    ten unterschiedlich reagieren, z.B. kann die Methode
                    SHOW je nach Button, Fenster oder Hauptfenster unter-
                    schiedliche Wirkungen zeigen

Klassenhierarchie und
Vererbungsprinzip   durch den Begriff der Oberklasse mit Instanzvariablen
                    und Methoden kommt es zu dem Begriff der Vererbung.
                    Man kann ein Objekt einer Oberklasse ergänzen und
                    erweitern zu einem anderen Objekt, das aber dennoch die
                    Methoden und Instanzvariablen behält.

                    Die Prozeduren und Funktionen, also die Methoden eines 
                    Moduls bzw. Objektes werden also mitvererbt, können
                    aber auch überschrieben werden wie beim Prinzip der 
                    globalen - lokalen Variablen. 

Eine Klasse kann angesehen werden als unmittelbare Verallgemeinerung eines
(norm.) Datentyps, klassisch ist die Unterscheidung zwischen TYP und VARIABLE,
jetzt zwischen KLASSE und OBJEKT. 

Beim Programmieren eines Objektes sollte man so vorgehen :

     -    Suche nach einer Klasse, die eigenen Forderungen am nächsten kommt
     -    Bilden einer Unterklasse
     -    Formulieren der Differenzen zur Oberklasse ( REUSABILITY statt
          Reprogrammierung, d.h. produktiver Zuwachs )