OOP vs Strukturierte Programmierung?

2 Antworten

Es ist derselbe Unterschied wie der zwischen einem Elefanten und einem Tier.

OOP ist strukturierte Programmierung. Letztere gibt es schon weit länger und die ist genau das, was deren Name aussagt.


LolekUndBolek  04.05.2019, 17:33

Willst du damit etwa andeuten, dass ein Elefant ein Tier sei? ;)

0

Der Hauptunterschied ist, daß bei OOP abstrakte Datentypen existieren, die alle Funktionalität eines 'Objektes' mit den Daten bündeln. Man modelliert also im Prinzip Objekte mit deren Eigenschaften und Funktionen, diese sind gekapselt.

Vielleicht ein einfaches Beispiel, Nehmen wir eine Datenstruktur wie einen Stack.

Der Stack kennt Operationen wie push() pop() empty().

Bei der Strukturierten Programmierung würde ich also im einfachsten Fall hingehen und Funktionen wie: create_stack(), push_stack() usw. schreiben in der Regel müßte ich diesen Funktionen eine Form von Referenz zu den Daten übermitteln, damit die Funktionen auf dieses operieren können.

Bei der OOP definiere ich einen abstrakten Datentyp (Klasse) die als Bauplan für ein Objekt (Instanz) dient.

Dieser Bauplan besagt, das mein Stack als 'Mitglieder' zb. eine Methode push() und pop() besitzt.

Ich würde dann z.B. sagen:

stack mystack;

Danach ist mystack eine Instanz (ein Objekt) von (Typ) stack. Nun rufe ich die Methode ("Objektfunktion") via mystack.push() etc. auf. D.h. die Funktionen (Methoden) sind direkt an den jeweiligen Stack untrennbar gebunden.

Ich bekomme eine Schnittstelle, bei der das interne 'Hexenwerk' ausgeblendet wird, weil ich nichts darüber wissen muß. Dieses innere Hexenwerk wird also abstrahiert, daher auch die Bezeichnugn abstrakter Datentyp.