Zum Inhalt springen
Informatik · Klasse 12 · Objektorientierte Modellierung und Software-Engineering · 1. Halbjahr

Klassen und Objekte

Die Schülerinnen und Schüler definieren Klassen und instanziieren Objekte, um reale Entitäten in Code abzubilden.

KMK BildungsstandardsKMK: Sekundarstufe II - Modellieren und Implementieren

Über dieses Thema

Klassen und Objekte bilden die Grundlage der objektorientierten Programmierung. Eine Klasse dient als Blaupause für Objekte, die reale Entitäten wie Fahrzeuge oder Bankkonten modellieren. Schüler definieren Attribute wie Farbe oder Kontostand und Methoden wie fahren oder einzahlen. Konstruktoren initialisieren Objekte beim Erzeugen und sorgen für konsistente Zustände.

Durch Instanziierung entstehen konkrete Objekte aus der Klasse, was die Unterscheidung zwischen allgemeinem Typ und spezifischer Instanz verdeutlicht. Dies fördert die Abbildung realer Probleme in Code und bereitet auf komplexere Strukturen vor. Die KMK-Standards zu Modellieren und Implementieren werden hier umgesetzt, indem Schüler Klassen für gegebene Szenarien konstruieren.

Aktives Lernen nutzt diesen Vorteil, da Schüler durch eigenständiges Erstellen und Testen von Klassen und Objekten abstrakte Konzepte greifbar machen. Sie entdecken Fehler früh und verstehen Zusammenhänge besser, was die Transferleistung in Projekte steigert.

Leitfragen

  1. Differentiieren Sie zwischen einer Klasse und einem Objekt anhand konkreter Beispiele.
  2. Konstruieren Sie eine Klasse mit Attributen und Methoden für ein gegebenes Problem.
  3. Erklären Sie die Rolle von Konstruktoren bei der Objekterzeugung.

Lernziele

  • Klassen und Objekte für gegebene reale Entitäten (z.B. ein Buch, ein Auto) entwerfen und die Struktur mit Attributen und Methoden definieren.
  • Instanzen von definierten Klassen erstellen und deren Zustand durch Setzen und Abfragen von Attributwerten manipulieren.
  • Die Unterschiede und Beziehungen zwischen einer Klasse (Blaupause) und einem Objekt (Instanz) anhand von Codebeispielen erklären.
  • Die Funktion von Konstruktoren bei der Initialisierung von Objekten mit spezifischen Anfangswerten demonstrieren.

Bevor es losgeht

Grundlagen der Programmierung: Variablen und Datentypen

Warum: Schüler müssen verstehen, wie Daten gespeichert und typisiert werden, um Attribute von Klassen zu definieren.

Grundlagen der Programmierung: Funktionen und Aufrufe

Warum: Methoden sind im Grunde Funktionen innerhalb von Klassen, daher ist das Verständnis von Funktionsaufrufen essenziell.

Schlüsselvokabular

KlasseEine Vorlage oder ein Bauplan, der die Struktur (Attribute) und das Verhalten (Methoden) für eine Gruppe von Objekten definiert.
ObjektEine konkrete Instanz einer Klasse, die eigene Werte für die Attribute der Klasse besitzt und die definierten Methoden ausführen kann.
AttributEine Variable innerhalb einer Klasse, die den Zustand oder die Eigenschaften eines Objekts beschreibt (z.B. Farbe, Größe, Name).
MethodeEine Funktion, die innerhalb einer Klasse definiert ist und das Verhalten eines Objekts beschreibt (z.B. fahren, berechnen, anzeigen).
KonstruktorEine spezielle Methode einer Klasse, die automatisch aufgerufen wird, wenn ein neues Objekt dieser Klasse erstellt wird, um dessen Anfangszustand festzulegen.
InstanziierungDer Prozess der Erzeugung eines konkreten Objekts aus einer Klasse.

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungEine Klasse ist bereits ein fertiges Objekt.

Was Sie stattdessen lehren sollten

Eine Klasse ist eine Vorlage oder Blaupause. Objekte entstehen durch Instanziierung der Klasse.

Häufige FehlvorstellungKonstruktoren sind optional.

Was Sie stattdessen lehren sollten

Konstruktoren initialisieren Objekte und sind essenziell für gültige Startzustände, auch wenn ein Default-Konstruktor vorhanden ist.

Häufige FehlvorstellungAttribute können ohne Getter/Setter geändert werden.

Was Sie stattdessen lehren sollten

Gute Praxis sieht Getter und Setter vor, um Kapselung zu wahren und direkten Zugriff zu vermeiden.

Ideen für aktives Lernen

Alle Aktivitäten ansehen

Bezüge zur Lebenswelt

  • Softwareentwickler in Automobilunternehmen nutzen Klassen und Objekte, um komplexe Systeme wie das Infotainmentsystem eines Autos zu modellieren. Jede Klasse (z.B. 'Radio', 'Navigationssystem') repräsentiert eine Komponente mit eigenen Attributen (z.B. Sender, Route) und Methoden (z.B. Sender wechseln, Route berechnen).
  • Spieleentwickler verwenden objektorientierte Prinzipien, um Spielfiguren, Gegenstände und die Spielwelt zu gestalten. Eine Klasse 'Gegner' könnte Attribute wie 'Lebenspunkte' und 'Angriffskraft' sowie Methoden wie 'angreifen()' und 'sterben()' haben, wobei jedes einzelne Monster im Spiel eine Instanz dieser Klasse ist.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Die Schüler erhalten eine kurze Beschreibung einer realen Entität (z.B. ein Smartphone). Sie sollen auf einem Zettel: 1. Einen Klassennamen vorschlagen. 2. Drei Attribute und zwei Methoden für diese Klasse definieren. 3. Ein Beispiel für die Instanziierung dieser Klasse mit konkreten Attributwerten schreiben.

Kurze Überprüfung

Der Lehrer präsentiert zwei Code-Schnipsel: einen, der eine Klasse korrekt definiert und instanziiert, und einen, der einen Fehler enthält (z.B. fehlender Konstruktor, falsche Methodensignatur). Die Schüler identifizieren den fehlerhaften Code und erklären kurz, warum er nicht funktioniert.

Diskussionsfrage

Stellen Sie die Frage: 'Warum ist es sinnvoll, eine Klasse 'Kunde' zu haben, anstatt für jeden einzelnen Kunden eine eigene, separate Struktur im Programm zu erstellen?' Leiten Sie die Diskussion hin zu Konzepten wie Wiederverwendbarkeit, Wartbarkeit und der Abbildung komplexer Beziehungen.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Klasse und Objekt?
Eine Klasse definiert Struktur und Verhalten durch Attribute und Methoden, wie eine Schablone. Ein Objekt ist eine Instanz dieser Klasse mit eigenen Werten, z. B. 'meinAuto' aus Klasse Auto. Dies ermöglicht Wiederverwendung und Modellierung realer Entitäten. Schüler üben dies durch konkrete Beispiele, was die KMK-Standards zu Modellieren erfüllt.
Warum sind Konstruktoren wichtig?
Konstruktoren setzen Attribute bei der Objekterzeugung, stellen Konsistenz sicher und verhindern ungültige Zustände. Ohne sie könnten Objekte fehlerhafte Werte haben. In der Praxis testen Schüler Konstruktoren, um robusten Code zu lernen, passend zu Implementierungsstandards.
Wie fördert aktives Lernen dieses Thema?
Aktives Lernen lässt Schüler Klassen selbst definieren und Objekte instanziieren, was abstrakte Ideen konkretisiert. Durch Experimentieren mit Fehlern verstehen sie Konstruktoren und Kapselung tiefer. Paar- oder Gruppenarbeit verstärkt Erklärungen gegenseitig und verbindet Theorie mit Praxis, was Motivation und Retention steigert.
Wie verbindet sich das mit realen Programmen?
In Software wie Spielen oder Apps modellieren Klassen Entitäten wie Spieler oder Benutzer. Schüler lernen, reale Probleme zu kodieren, was Transfer zu Projekten erleichtert und KMK-Ziele zu Problemlösung unterstützt.

Planungsvorlagen für Informatik

Klassen und Objekte | Unterrichtsentwurf für Klasse 12 Informatik | Flip Education