OOP
Lernfokus
AP2 Anwendungsentwicklung: Objektorientierung sicher anwenden – Daten kapseln, Typen über Vererbung und Interfaces gliedern und Beziehungen bewusst als „ist-ein" oder „hat-ein" modellieren.
- Kapselung mit Sichtbarkeiten sowie Getter/Setter richtig einsetzen.
- Überschreiben und Überladen samt dynamischer Bindung sicher unterscheiden.
- Interfaces, abstrakte Klassen und Komposition gezielt gegeneinander abwägen.
Kapselung
Kapselung (Information Hiding) verbirgt die inneren Daten einer Klasse und gibt sie nur über kontrollierte Methoden frei.
- Sichtbarkeiten:
privatenur in der eigenen Klasse,protectedzusätzlich für Unterklassen/Paket,publicüberall. - Getter/Setter: steuern Lese- und Schreibzugriff; der Setter kann Werte validieren, bevor sie gesetzt werden.
- Nur lesbar: Attribut
privatelassen und nur einen Getter (keinen Setter) anbieten.
Merksatz: Attribute private, Zugriff über Methoden – so behält die Klasse die Kontrolle über ihre Daten.
Vererbung
Vererbung modelliert eine „ist-ein"-Beziehung: Die Unterklasse übernimmt Attribute und Methoden der Oberklasse und erweitert sie.
- Ober-/Unterklasse: die Subklasse erbt und darf geerbte Methoden überschreiben.
super: ruft Konstruktor bzw. Methode der Oberklasse auf, um deren Teil des Objekts zu initialisieren.- Überschreiben (override): gleiche Signatur, neue Implementierung in der Unterklasse.
Merksatz: „ist-ein" heißt Vererbung – ein Hund ist ein Tier, ein Auto ist kein Motor.
Polymorphie: Überladen & Überschreiben
Polymorphie erlaubt, verschiedene Objekte einheitlich über einen gemeinsamen Obertyp zu behandeln.
- Überladen (overloading): gleicher Name, andere Parameterliste, gleiche Klasse – der Compiler wählt zur Compilezeit.
- Überschreiben (overriding): Unterklasse ersetzt geerbte Methode – der echte Objekttyp entscheidet zur Laufzeit (dynamische Bindung).
- Nutzen: eine Liste von
Form-Objekten zeichnen, ohne den konkreten Typ zu kennen.
Merksatz: Überladen entscheidet der Compiler (Parameter), Überschreiben die Laufzeit (Objekttyp).
Interfaces, abstrakte Klassen & Komposition
Für Struktur und Wiederverwendung stehen mehrere Werkzeuge bereit, die du bewusst wählst.
- Interface: reiner Vertrag; eine Klasse kann mehrere Interfaces implementieren (
implements Comparable, Serializable). - Abstrakte Klasse: nicht instanziierbar, bringt aber Zustand und fertige Methoden mit; nur eine Basisklasse.
- Komposition: „hat-ein" – ein Objekt enthält ein anderes als Attribut, lose gekoppelt und flexibel.
Merksatz: „Favor composition over inheritance" – lieber ein Motor-Objekt enthalten als tief von einer fragilen Basisklasse erben.
Prüfungsmodus
Dieser ProtocolCheck führt dich durch die wichtigsten AP2-Aspekte dieses Themas. Du kannst Antworten prüfen, Fragen überspringen und bekommst am Ende eine Auswertung nach Kategorie.
Kategorie
OOP
AP2-Training