Klassen und Objekte – Referenzen, Kapselung und Vererbung

InformatikAlgorithmen und ProblemlösenAlter 17–18

Wird geladen …

Mit meiner Klasse nutzen ✨ Mit KI anpassen Problem melden

Führen Sie kleine Python- oder Java-Programme, die Klassen definieren, Objekte erzeugen und Methoden aufrufen, Schritt für Schritt aus und beobachten Sie den Speicher: Variablen auf dem Stack halten Pfeile (Referenzen) auf Objekte im Heap, daneben steht ein UML-Klassendiagramm. Sechs Beispiele behandeln Konstruktoren und Zustand, Aliasing und null, Objekte als Parameter und Rückgabewerte, Kapselung mit Gettern und Settern, Vererbung mit Überschreiben und Polymorphie sowie statische Elemente. Im Modus Experimentieren erzeugen Sie selbst Objekte und kopieren Referenzen, und eine Entwurfsaufgabe verlangt, aus einer schriftlichen Spezifikation ein Klassendiagramm zu erstellen.

Lektion: Objektorientierte Programmierung: Klassen, Objekte, Referenzen, Kapselung, Vererbung und Polymorphie

Was sie zeigt

Eine Klasse ist ein Bauplan, der Attribute (Daten) und Methoden (Verhalten) festlegt; jedes daraus erzeugte Objekt ist eine Instanz mit eigener Kopie der Attribute. Eine Variable vom Klassentyp enthält nicht das Objekt, sondern eine Referenz darauf: Weist man eine Variable einer anderen zu, entsteht ein Alias, und eine Referenz kann null sein (None in Python). Kapselung hält Attribute privat und macht sie über Methoden zugänglich, die Werte prüfen können. Eine Unterklasse erbt die Elemente ihrer Oberklasse und kann Methoden überschreiben; zur Laufzeit entscheidet die tatsächliche Klasse des Objekts, welche Version läuft – das ist Polymorphie.

So funktioniert es

Wählen Sie Schrittweise ausführen, eine Sprache und ein Beispiel, drücken Sie dann Schritt oder Abspielen und verfolgen Sie die markierte Zeile, die Pfeile in der Speicheransicht und die markierte Methode im Klassendiagramm. Erzeugen Sie unter Experimentieren Account- oder SavingsAccount-Objekte, kopieren Sie Referenzen mit Zuweisen und nutzen Sie Aufrufen, um Aliasing, Datenmüll und Überschreiben zu sehen. Lesen Sie in der Entwurfsaufgabe die Spezifikation, klicken Sie Elemente in die Klassen und drücken Sie Prüfen.

Einstellbare Parameter

  • Modus Schrittweise ausführen, Experimentieren, Entwurfsaufgabe
  • Beispiel Klassen, Objekte und Methoden, Referenzen, Aliasing und null, Objekte als Parameter und Rückgabewerte, Kapselung: Getter und Setter, Vererbung und Polymorphie, Statische Elemente (Klassenelemente)
  • Sprache Python, Java
  • Abspielgeschwindigkeit 0,5–5 Schritte/s
  • Entwurfsaufgabe Bibliotheksbuch, Figuren (Vererbung), Schüler (statische Elemente)

Fragen zum Erkunden

  1. Warum ändert sich nach c2 = c1 und c2.increment() auch c1.count?
  2. Warum ändert reset(p) die Variable des Aufrufers nicht, während move_right(p, dx) das Objekt des Aufrufers ändert?
  3. Warum liefert p.describe() in der Schleife über pets für Dog und Cat einen anderen Laut?