OOP ist vor allem bei großen Programmen sehr hilfreich, da ein Objekt sehr leicht eingebungen oder verändert werden kann. Dies verbilligt vor allem große Softwareprojekte enorm, da der Wartungsaufwand erheblich reduziert werden kann.
Was ist ein Objekt überhaupt? Ein Objekt hat Eigenschaften, die dieses Objekt einzigartig machen
D.h. Ein Computer beispielsweise wäre ein Objekt, er hat einen Prozessortyp, einen Bus-typ, eine Gehäuseart,... alle diese Attribute machen ihn (das Objekt) einzigartig.
Es stellt sich die Frage, wie die Daten zu speichern sind. Die beste Lösung ist eine Struktur, in der alle Daten, das Objekt betreffend gespeichert werden. (1.Schritt in Richtung OOP)
Ein Objekt hat also eigene interne Daten (Instanz Variablen) und außerdem eigene Funktionen (Methoden), die nur für dieses Objekt gelten. D.h. Ein Objekt ist einfach eine Structur in die noch ihre Funktionen direkt hinein geschrieben werden. (2. Schritt in Richtung OOP)
Damit das Programm weiß, wie auf die einzelnen Daten zugegriffen werden darf gibt es mehrere reservierte Wörter. Diese sind u.a. private, public, protected
public: dieses Wort sagt aus, daß überall aus dem Programm, und das jedes Objekt auf die Daten die mit private definiert sind zugreifen darf.
private: dies bedeuted, daß nur objekteigene Funktionen auf diesen Datenbestand zugreifen darf.
protected: bei dieser Definition wird festgelegt, daß nur objekteigene Funktionen und Funktionen von Vererbungen dieses Objektes auf diese Daten zugreifen dürfen.
So ein Unterprogrammaufruf wird beim OOP auch als schicken einer Nachricht bezeichnet.
Wir rufen eine Methode auf, indem wir das Objekt nennen einen Punkt setzen und die gewünschte Methode angeben.
z.B. Rechteck.füllen
Bei Strukturen ist die Gefahr, daß der Programmierer auf Datenbestände zugreift, die er zu diesem Zeitpunkt vielleicht gar nicht ändern können sollte, daher Datenkapselung (private, public, protected siehe später). D.h. die dafür definierten Funktionen ändern die Datenbestände eines Objektes (und sonst nichts, nur diese Funktionen).
Beispiel zu Klassen: Einteilen von Zügen
Schienenfahrzeug (Achsenanzahl, Achsenabstand,...)
Lok(Antriebsart,...) Wagen
E-Lok Dampflok(Holz/km, Wasserverbrauch,...)
Oben wird eine Hierarchie von Objekten angeführt. D..h in Lok muß keine Achsenanzahl mehr gespeichert werden, weil Lok ein Schienenfahrzeug ist und dort die Information zu Achsenzahl gespeichert wird, Jedes Schienenfahrzeug muß demzufolge Achsen haben um als Schienenfahrzeug zu gelten. Wasserverbrauch wiederum wird nur bei Dampflok gespeichert, da eine E-Lok keinen Holzverbrauch aufweist.
|