MV Abitur Computer Science study materials
MV Abitur Computer Science study resources

MV Abitur Computer Science: Objektorientierung

MV Abitur Computer Science · Work through your exam, one topic at a time.

All guide sections

Objektorientierung

Der Bereich Objektorientierung prüft, ob du ein Modell aus Klassen, Beziehungen und Verantwortlichkeiten entwirfst, es im UML-Diagramm korrekt notierst und in Code mit Kapselung, Vererbung und Polymorphismus umsetzt.

Grundbegriffe

Eine Klasse ist der Bauplan, ein Objekt eine Instanz mit eigenem Zustand. Attribute beschreiben den Zustand, Methoden das Verhalten, der Konstruktor initialisiert das Objekt. Sichtbarkeiten: - privat, # geschützt, + öffentlich, ~ paketweit. Kapselung heißt: Attribute privat, Zugriff nur über Methoden – so bleiben Invarianten kontrollierbar.

Beziehungen im UML-Klassendiagramm

  • Assoziation: Linie zwischen Klassen, Multiplizität an den Enden (1, 0..1, *, 1..*).
  • Vererbung: durchgezogene Linie mit offenem Dreieck zur Oberklasse; bedeutet „ist ein“.
  • Aggregation: leere Raute beim Ganzen; Teil kann ohne Ganzes existieren.
  • Komposition: gefüllte Raute; Teil existiert nicht ohne Ganzes (Existenzabhängigkeit). Im Objektdiagramm stehen Instanzen mit unterstrichenem Namen objekt : Klasse und konkreten Attributwerten.

Vererbung und Polymorphismus

Eine Unterklasse erbt Attribute und Methoden und kann Methoden überschreiben (Overriding, gleiche Signatur). Beim Aufruf über eine Referenz des Oberklassentyps entscheidet erst die dynamische Bindung zur Laufzeit, welche Implementierung läuft – das ist Polymorphismus. Überladen (Overloading: gleicher Name, andere Parameterliste) wird dagegen zur Compile-Zeit aufgelöst und ist kein dynamischer Polymorphismus.

Durchgerechnetes Beispiel

Abstrakte Klasse Form mit flaeche(), Unterklassen Kreis(r) und Rechteck(a,b) überschreiben sie. Eine Liste List<Form> formen enthält beide Objekte; die Schleife ruft nur f.flaeche() auf.

Begründung: Der deklarierte Typ ist Form, der tatsächliche Typ Kreis bzw. Rechteck. Die Laufzeitumgebung wählt anhand des Objekts die passende Überschreibung; Kreis berechnet π·r², Rechteck a·b. Vorteil: Eine neue Unterklasse Dreieck erfordert keine Änderung der Schleife. Konstruktoren werden nicht vererbt; die Unterklasse ruft sie mit super(...) auf.

Typische Fallen

  • Overloading und Overriding gleichsetzen.
  • Pfeilrichtung der Vererbung umdrehen (Dreieck zeigt zur Oberklasse).
  • Aggregation und Komposition an der Raute verwechseln.
  • Vergessen, dass private Attribute in der Unterklasse nicht direkt sichtbar sind.
  • Objekt- und Klassendiagramm vermischen: Objekte haben unterstrichene Namen und Werte.
  • Fehlender super()-Aufruf bei nicht-trivialem Oberklassenkonstruktor.