Warum objektorientiertes Programmieren ?

Intrinsische Datentypen ( int, float, double, string, ...) sind unzureichend für die allermeisten praktischen Probleme.

Offensichtlich im Bereich Verwaltung, Wirtschaft, Handel, ...

Praktisch immer komplexe Datenmodelle, d.h. zusammengesetzt aus Strings, int und float Zahlen, Arrays, Querverweise auf weitere Infos, usw.

Aber auch im naturwissenschaftlich/technischen Umfeld – mit überwiegend numerischen Informationen – sind Messdaten keine isolierten Zahlenkolonnen sondern i.d.R. komplex strukturiert und ergeben nur im Kontext mit dem Experiment (Aufbau, Parameter, äussere Bedingungen) einen Sinn.


Beliebig komplexe Datenstrukturen auch schon mit C struct möglich. C++ Klassen zusätzlich Verknüpfung Daten und Funktionen.


Historische Entwicklung:
Unstructered Programming:
Ein Hauptprogamm + Daten
Procedural Programming:
Ein Hauptprogamm + globale Daten + kleinere Funktionen (prozedures)
Modular Programming:
Ein Hauptprogamm + globale Daten + Module mit lokalen Daten und Unterprozeduren
Object-oriented:
Daten und Prozeduren integriert in Klassen, keine globalen Daten, kein eigentliches Hauptprogramm, Objekte kommunizieren direkt
Im Prinzip natürlicher & intuitiver Ansatz:
\bgroup\color{green}$\Rightarrow$\egroup Alltag Datum & Methode verknüpft
Auto ..., Fahren, Schalten, Blinken, ...
Wiesn ..., Maß, Schunkeln, Brechen, ...
Fußball ..., Blutgrätsche, Schwalbe, ...