Vielen Dank!!Also wenn ich das richtig verstanden habe, dann ist der Unterschied, dass in der Objektorientierten Programmierung jedes Objekt genau weiss, was es kann. In der nichtobjektorientierten Programmierung, muss man einem Objekt den genauen Ablauf erklären.
Äh, nein. In der nicht-OOP muss man einem Objekt gar nichts erklären. Sonst wäre es ja OOP. ;-)
Also, der Unterschied besteht weniger im Ablauf eines Stückes Code. Das, also sozusagen das Atomare, funktioniert bei beiden gleich. Der Unterschied besteht darin, dass das Stück Code bereits "seine" Daten kennt. Dadurch sind Daten und Ablauf "verheiratet".
http://cocoading.de/Sonstiges/OOP.jpg
Im ersten Beispiel hast du ein Stück Code und der Aufrufer liefert dreimal verschiedene Daten, nämlich die Pfad der zu lesenden Dateien.
Im unteren Teil bilden der Pfad und die Funktionalität eine Einheit. Das heiß, der Aufrufer liefert gar nichts und du hast "virtuell" drei Objekte mit jeweils einem (gleichen) Stück Code und einem Pfad.
Weist du unten also etwa das Datei-Objekt einer anderen Variable zu, so weist du "logisch" gleich den Code für die Leseoperation mit zu.
+++
Jetzt stell dir noch vor, die Pfade sind jeweils Bilddateien und genau diese sollen gelesen werden. Im ersten Fall musst du dir irgendwie merken, welche Art von Bild (JPG, IMG, TIFF usw.) du hast. Dann musst du jedes Mal entscheiden, welches Stück code lese_jpg, lese_tiff usw. ausgeführt werden soll. Wird das einer anderen Variablen zugewiesen, musst du bei der Benutzung dieser Variablen wieder entscheiden usw.
Im OOP-Ansatz wird einfach bei der Erzeugung des Objektes einmal überprüft, was dsa richtige Objekt für die konkrete Datei ist. Demnach wird einmal ein Tiff-Ojekt, einmal ein JPG-Objekt usw. erzeugt. Später bekommt jedes Objekt die
immer gleiche Nachricht "lese". Dieses Objekt, die Verheiratung der Datei mit dem Code, hat ja stets den "richtigen" code für den richtigen Typen. Das kannst du jetzt auch zuweisen wie du willst.