Objekt-orientiertes Programmieren

Hi Leute!

Meine Frage mag sich dumm anhören, aber ich finde da keine befriedigenden Informationen zu über goole.

Deshalb:
Was heisst objekt-orientiertes Programmieren eigentlich genau?

Finde nur immer Infos á la „Ableiten von Klassen“… Das muss doch mehr bedeuten?!

MfG
rayman

Hallo rayman,

www.mitp.de/dummies/2862/inhalte/VC++.pdf

in dem PDF-Dokument dürftest Du erstmal erfahren, was das ganze ist.
Gruß Mike

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Rayman38,

die Macht der objektorientierte Programmierung ist die Art wie Fähigkeiten eines Programms dargestellt und dementsprechend abgerufen werden kann. Es werden Objekte entworfen die bestimmte Fähigkeiten haben. Diese Darstellung der Fähigkeiten werden in sogenannten Klassen beschrieben. Dazu hat jeder objektorientierte Sprache seinen eigenen Syntax. Aus so eine Klasse wird dann vom System, eine virtuelle Kopie im Speicher dargestellt, was dann als ein „Objekt“ oder auch als eine „Instanz“ der Klasse genannt wird. Angesprochen wird dieses Objekt über einen frei difinierten Namen. Über diesen Namen ist es jetzt möglich auf die Fähigkeiten dieses Objektes zuzugreifen. Da jedes Objekt klar definierte Schnittstellen hat, und NUR über diese zugänglich sind, sind die Geschehnisse INNERHALB des Objektes für die anderen Objekten uninteressant.
Diese Vorgehensweise nennt man Kapselung. So werden auch die Daten, sprich das WISSEN des Objektes für andere Objekten versteckt. Zumindest sollte bei propere Programmierung versucht werden diesen Zustand so Integer als möglich beizubehalten.
Also, ein Objekt hat ein WISSEN, das sind seine Daten und Attribute. Es hat KÖNNEN bzw. FÄHIGKEITEN, das sind seine Methoden. Das stärkste ist die Vererbung. Genau wie Kinder von den Eltern Fähigkeiten und Aussehen erben, so erben Objekten von anderen die Fähigkeiten und das Wissen. Auch dies wird über die beschreibung in den Klassen festgelegt. Bei jeder tiefere Vererbung wird dieses Objekt immer spezialisierter, denn es kann etwas spezielles was die Klasse über ihm(bzw. das Objekt) nicht kann. Dafür kann die „Spezialisíerung“ alles was die „Oberklasse“ kann.
Jetzt kannst du dir schon ein kleines Bild machen. Bei Prozedurales Programmieren werden zwar auch „Methoden“ die dann „Prozeduren“ heissen geschrieben, das Wissen und die Daten werden aber ausserhalb des Programmuniversum gespeichert, oder sind beim verlassen der Prozedur verloren. Ein Objekt ist erst „Tod“ wenn kein Referenz mehr auf ihr existiert. Solange kann man immer wieder ihr Wissen und Können in Anspruch nehmen.

Ein recht komplexes, allerdings auch sehr schönes Thema.
Ich hoffe einwenig Aufklärung gebracht zu haben.
Gute Nacht!
Marc

Hi,

der folgende Artikel geht zwar etwas ueber Deine Frage hinaus, es geht um das generische Programmieren, aber gerade deshalb stellt sich Objekt-Orientierung als etwas „Natuerliches“ dar. Vom Vater der STL:

http://www.stlport.org/resources/StepanovUSA.html

Ciao Lutz

PS: Falls lineare Algebra hinreichend bekannt ist, ist auch jede Menge Material unter http://oonumerics.org zu finden.