12. Objektorientierte Programmierung (OOP)
- Themen
- Motivation: Warum objektorientiert programmieren?
- Paradigmenwechsel: strukturiert zu objektorientiert
- Grundlagen: Konzepte der objektorientierten Programmierung
- Ausblick: objektorientiertes Design
- Folien
Zentrale Aspekte
- OOP ist eine Abstraktion, die die Abbildung realer Probleme
auf Code stark vereinfachen kann. - OOP erfordert ein grundlegendes Umdenken
verglichen mit anderen Programmierparadigmen. - Richtig eingesetzt erleichtert OOP die Erstellung
modularen, robusten und wiederverwendbaren Codes. - Objektorientierte und strukturierte Programmierung
schließen sich nicht gegenseitig aus. - Die Kernaspekte von OOP sind
Kapselung, Vererbung und Polymorphie.
Weiterführende Literatur
Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.
Eines der wenigen Bücher, die sich darum bemühen, das Paradigma der objektorientierten Programmierung allgemein und möglichst unabhängig von der konkreten Implementierung in einer Programmiersprache darzustellen, ist [Weisfeld, 2013Weisfeld, Matt (2013): The Object-Oriented Thought Process, Addison-Wesley, Upper Saddle River, New Jersey]. Sehr auf Beispiele aus dem wissenschaftlichen Kontext und auf Python als Programmiersprache zugeschnitten ist [Scopatz, 2015Scopatz, Anthony; Huff, Kathryn D. (2015): Effective Computation in Physics, O'Reilly, Sebastopol], Kapitel 6. Allgemein und kurz ist Kapitel 23 in [Passig, 2013Passig, Kathrin; Jander, Johannes (2013): Weniger schlecht programmieren, O'Reilly, Heidelberg].
Ein Klassiker der „Einführung“ in die objektorientierte Programmierung, wenn auch nur noch antiquarisch zu erwerben und eher dick (knapp 1200 Seiten), ist [Meyer, 1997Meyer, Bertrand (1997): Object-Oriented Software Construction, Prentice Hall PTR, Upper Saddle River, New Jersey]. Auch hier liegt der Fokus nicht auf einer konkreten Sprache, sondern auf den allgemeinen Prinzipien.
- Meyer, Bertrand (1997): Object-Oriented Software Construction, Prentice Hall PTR, Upper Saddle River, New Jersey
- Passig, Kathrin; Jander, Johannes (2013): Weniger schlecht programmieren, O'Reilly, Heidelberg
- Scopatz, Anthony; Huff, Kathryn D. (2015): Effective Computation in Physics, O'Reilly, Sebastopol
- Weisfeld, Matt (2013): The Object-Oriented Thought Process, Addison-Wesley, Upper Saddle River, New Jersey