Zum Inhalt springen

Informatik · Klasse 11–13 · aktualisiert

Objektorientierung: Klassen, Objekte und Polymorphie

Du unterscheidest Klassen und Objekte, sicherst gültige Zustände und bestimmst bei überschriebenen Methoden die passende Ausführung.

0 von 9 Aufgaben gelöst

Objektorientierung: Klassen, Objekte und Polymorphie

Kurz gesagt

Objektorientierung bündelt Daten und Verhalten in Objekten, deren Bauplan eine Klasse ist. Kapselung ermöglicht kontrollierte Änderungen; Vererbung und Polymorphie verbinden gemeinsame Merkmale mit eigenen Methodenumsetzungen.

Bei der Objektorientierung fasst du zusammengehörige Daten und Aktionen zusammen. Java ist die hier verwendete Programmiersprache. Die erfundenen Klassenmodelle beschreiben Klassen und ihr Verhalten vereinfacht; sie sind keine vollständigen ausführbaren Programme. Einzelne Aufrufe stehen in Java-Schreibweise.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Termi das Ziel für dich ab.

4 Abschnitte

Eine Klasse ist ein Bauplan für gleichartige Objekte. Sie legt fest, welche Attribute und Methoden diese Objekte besitzen. Ein Objekt ist ein einzelnes Exemplar einer Klasse. Dafür verwendet man auch das Wort Instanz.

Ein Attribut ist ein benannter Speicherplatz für Daten eines Objekts. Die aktuellen Attributwerte bilden seinen Zustand. Eine Methode ist ein benannter Programmteil mit Anweisungen für das Verhalten. Sie kann zum Beispiel Attributwerte lesen oder ändern. Eine Instanzmethode gehört zum Verhalten eines einzelnen Objekts. Alle hier betrachteten Methoden sind Instanzmethoden.

Eine Variable ist ein benannter Speicherplatz im Programm. Variablen wie notizA enthalten hier einen Verweis, also einen Bezug auf ein Objekt. Bei notizA.anzeigen() gibt notizA das angesprochene Objekt an; hinter dem Punkt steht der Methodenname. Die Klammern enthalten die übergebenen Eingaben. Leere Klammern bedeuten, dass keine Eingabe übergeben wird. Verschiedene Objekte derselben Klasse können unterschiedliche Attributwerte haben.

Definition

Zustand und Verhalten

Der Zustand besteht aus den aktuellen Attributwerten eines Objekts. Sein Verhalten wird durch Methoden beschrieben, die diese Werte lesen oder verändern können.

Beispiel: Zwei Notizen nach demselben Bauplan

  1. 1Die Klasse Notiz legt das Attribut inhalt und die Methode anzeigen() fest. Diese Methode liefert den gespeicherten Inhalt.
  2. 2Die Objekte A und B sind verschiedene Notizen: A enthält „Idee“, B enthält „Termin“.
  3. 3Die Variable notizA verweist auf A. notizA.anzeigen() liefert „Idee“.
  4. 4Die Variable notizB verweist auf B. notizB.anzeigen() liefert „Termin“.

Teste dich

LeichtWas ist „Termin“ im Beispiel mit den beiden Notizen?

Alles auf einen Blick

Objektorientierung

  • Klasse und Objekt

    Die Klasse beschreibt den Bauplan; ein Objekt ist ein einzelnes Exemplar davon.

  • Zustand und Verhalten

    Attributwerte bilden den Zustand; Methoden beschreiben das Verhalten.

  • Erzeugung

    Bei new wird Speicher reserviert und ein Konstruktor zur Initialisierung aufgerufen.

  • Kapselung

    Geschützter Zugriff ermöglicht kontrollierte Änderungen. Gültigkeit erfordert eine passende Initialisierung und Änderungen, die die Regel erhalten.

  • Vererbung und Polymorphie

    Unterklassen können Methoden übernehmen und überschreiben. Über einen gemeinsamen Klassentyp lassen sich unterschiedliche Objektarten ansprechen.

  • Dynamische Bindung

    Bei den gezeigten überschriebenen Instanzmethoden bestimmt das tatsächliche Objekt die ausgeführte Umsetzung.

Musteraufgabe · Schritt für Schritt

Den Methodenaufruf an einem Pinsel bestimmen

  1. 1Im erfundenen Modell besitzt die Klasse Werkzeug die Instanzmethode beschreiben(). Sie liefert „Werkzeug bereit“.
  2. 2Die Unterklasse Pinsel überschreibt beschreiben() und liefert „Pinsel bereit“.
  3. 3Die Variable w hat den deklarierten Typ Werkzeug und verweist auf ein erzeugtes Pinsel-Objekt.
  4. 4Für w.beschreiben() bestimmen wir zuerst die tatsächliche Klasse des angesprochenen Objekts: Pinsel.
  5. 5Pinsel überschreibt die Methode. Deshalb läuft die Umsetzung aus Pinsel und liefert „Pinsel bereit“.

Fehler finden

Prüfe den Aufruf an einem Spielstein In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Der gemeinsame Bauplan für mehrere gleichartige Objekte ist eine . Eine erfundene Steuerung erlaubt die ganzzahligen Stufen 0 bis 5. Sie steht auf 3. Ihre Methode übernimmt gültige Eingaben und weist ungültige ohne Änderung ab. Nach der Eingabe 8 beträgt die gespeicherte Stufe . Die Klasse Drucker besitzt die Instanzmethode status(). Fotodrucker überschreibt sie mit dem Ergebnis „Foto“. Eine Variable vom Typ Drucker verweist auf ein Fotodrucker-Objekt. Beim Aufruf von status() an diesem Objekt läuft die Umsetzung aus .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Objektorientierung

LeichtIm erfundenen Modell legt Sitzplatz für viele einzelne Plätze die Attribute reihe und nummer sowie die Methode reservieren() fest. Was ist Sitzplatz in dieser Beschreibung?
MittelEin erfundenes Spielkonto speichert Punkte privat. Erlaubt sind ganze Zahlen von 0 bis 50. Sein Konstruktor übernimmt aber den Startwert 65 ungeprüft. Die Methode für spätere Änderungen prüft den erlaubten Bereich. Was folgt direkt nach der Erzeugung?
SchwerIm erfundenen Modell besitzt Spender die Instanzmethode status(), die „Bereit“ liefert. Seifenspender überschreibt sie mit dem Ergebnis „Seife“. Wasserspender erbt sie unverändert von Spender. Die Variable s hat den deklarierten Typ Spender. Zuerst verweist s auf einen Seifenspender, danach auf einen Wasserspender. Nach jeder Zuweisung wird s.status() aufgerufen. Welche Ergebnisse folgen in dieser Reihenfolge?

Weiterlesen in Informatik