Was ist OOP? Objektorientierte Programmierung erklärt
Objektorientierte Programmierung (kurz OOP) ist ein Programmierparadigma, das auf dem Konzept von “Objekten” basiert. Im Gegensatz zur prozeduralen Programmierung, wo Code in Funktionen und Abläufen organisiert wird, gruppiert OOP zusammengehörige Daten und Verhaltensweisen in bausteinartigen Entitäten.
Stelle dir ein Auto vor. Anstatt eine Funktion fahre_auto(farbe, marke) zu schreiben, erstellst du ein Objekt Auto, das Eigenschaften (Farbe, Marke) und Methoden (fahren, bremsen) in sich vereint.
1. 🧱 Klassen und Objekte
Klassen (Der Bauplan)
Eine Klasse ist wie ein Bauplan oder eine Blaupause. Sie definiert, welche Eigenschaften und Methoden die Objekte später haben werden, enthält aber selbst noch keine konkreten Daten.
Objekte (Die Realität)
Ein Objekt ist eine Instanz einer Klasse. Wenn die Klasse der Bauplan für ein Auto ist, ist das Objekt das tatsächliche, physische Auto (z.B. ein roter Ferrari), das in deiner Einfahrt steht.
2. 🏛️ Die 4 Säulen der OOP
Damit eine Sprache wirklich als objektorientiert gilt, sollte sie die folgenden vier Kernkonzepte unterstützen:
1. Kapselung (Encapsulation)
Daten und die Methoden, die darauf operieren, werden in einer einzigen Einheit (Klasse) gebündelt. Der interne Zustand eines Objekts wird nach aussen hin versteckt (private) und kann nur über definierte Schnittstellen (Methoden wie Getter/Setter) verändert werden. Das schützt vor ungewollten Änderungen.
2. Abstraktion (Abstraction)
Komplexe Implementierungsdetails werden verborgen. Ein Auto hat ein Lenkrad und Pedale, das reicht dem Fahrer. Er muss nicht wissen, wie exakt der Motor intern die Einspritzung regelt. Abstraktion bedeutet, nur das Nötigste nach aussen hin preiszugeben.
3. Vererbung (Inheritance)
Klassen können Eigenschaften und Verhalten von anderen Klassen erben. Das fördert Code-Wiederverwendung.
- Beispiel: Eine Klasse
Hunderbt von der allgemeinen KlasseTier. Beide könnenatmen(), aber nur der Hund kannbellen().
4. Polymorphismus (Polymorphism)
“Vielgestaltigkeit”. Verschiedene Klassen können dieselbe Methode definieren, aber unterschiedlich implementieren.
- Beispiel: Ein
Hundund eineKatzehaben beide eine Methodesprich(). Wenn manTier.sprich()aufruft, bellt der Hund, aber die Katze miaut, je nachdem, welches Objekt gerade dahintersteckt.
📚 Weiterführende Links & Quellen
- SOLID: Clean Code & Design (fünf Prinzipien für gutes objektorientiertes Design)
- Wikipedia: Objektorientierte Programmierung
- Buch: Clean Code von Robert C. Martin (lesbarer, wartbarer OOP-Code in der Praxis)
- Buch: Design Patterns von Gamma, Helm, Johnson, Vlissides (die «Gang of Four»: bewährte OOP-Lösungsmuster)