Klassen und Objekte
Unterscheidung zwischen dem Bauplan (Klasse) und der konkreten Ausprägung (Instanz).
Brauchen Sie einen Unterrichtsplan für Informatik in der Oberstufe: Algorithmen, Daten und Gesellschaft?
Leitfragen
- Wie entscheiden wir, welche Eigenschaften eines Objekts für unser Modell relevant sind?
- Inwiefern spiegelt die Objektorientierung unsere menschliche Wahrnehmung der Welt wider?
- Erklären Sie, was im Speicher des Computers passiert, wenn ein neues Objekt erzeugt wird.
KMK Bildungsstandards
Über dieses Thema
Klassen und Objekte bilden die Grundlage der objektorientierten Programmierung. Eine Klasse dient als Bauplan, der Eigenschaften und Verhalten für Objekte definiert, während Objekte konkrete Instanzen darstellen. Schüler in der 11. Klasse lernen, relevante Merkmale für Modelle auszuwählen, etwa bei der Modellierung eines Fahrzeugs mit Attributen wie Farbe und Geschwindigkeit. Dies spiegelt die menschliche Wahrnehmung wider, da wir die Welt durch Kategorien und Beispiele strukturieren.
Im Speicher entsteht bei der Erzeugung eines Objekts mit 'new' ein neuer Speicherbereich: Attribute werden allokiert und initialisiert, Methoden verweisen auf den Klassen-Code. Diese Prozesse verbinden Modellieren mit Darstellen und Interpretieren nach KMK-Standards. Schüler analysieren, warum Klassen wiederverwendbar sind und Objekte unabhängig existieren.
Aktives Lernen eignet sich hervorragend, da abstrakte Konzepte durch praktische Umsetzungen greifbar werden. Wenn Schüler Klassen coden und Instanzen erzeugen, beobachten sie direkt den Unterschied und festigen Verständnis durch Trial-and-Error.
Lernziele
- Klassen als Blaupausen für Objekte identifizieren und deren Struktur (Attribute, Methoden) beschreiben.
- Konkrete Objekte (Instanzen) aus gegebenen Klassen erstellen und deren individuellen Zustand (Attribute) festlegen.
- Den Unterschied zwischen einer Klasse und einer Instanz anhand von Codebeispielen und Speicherabbildungen erklären.
- Die Relevanz der Auswahl spezifischer Attribute für die Modellierung eines Problems analysieren.
- Die Entstehung eines Objekts im Computerspeicher, einschließlich der Speicherallokation für Attribute, erläutern.
Bevor es losgeht
Warum: Schüler müssen verstehen, wie Daten gespeichert und benannt werden, um Klassenattribute zu definieren und zu nutzen.
Warum: Methoden innerhalb von Klassen verwenden oft Kontrollstrukturen, um Verhalten zu implementieren.
Schlüsselvokabular
| Klasse | Ein Bauplan oder eine Vorlage, die die gemeinsamen Eigenschaften (Attribute) und Verhaltensweisen (Methoden) für eine Gruppe von Objekten definiert. |
| Objekt (Instanz) | Eine konkrete Ausprägung einer Klasse. Jedes Objekt hat seinen eigenen Zustand, der durch die Werte seiner Attribute bestimmt wird. |
| Attribut | Eine Eigenschaft oder ein Merkmal, das den Zustand eines Objekts beschreibt. In der Programmierung oft als Variable innerhalb einer Klasse implementiert. |
| Methode | Eine Funktion oder ein Verhalten, das von Objekten einer Klasse ausgeführt werden kann. Sie operiert oft auf den Attributen des Objekts. |
| Instanziierung | Der Prozess der Erzeugung eines konkreten Objekts aus einer Klasse. Dies geschieht typischerweise mit dem Schlüsselwort 'new'. |
Ideen für aktives Lernen
Alle Aktivitäten ansehenPaarprogrammierung: Klasse Auto modellieren
Paare definieren eine Klasse Auto mit Attributen wie Marke, Farbe und Methode fahren(). Sie erzeugen zwei Objekte und rufen Methoden auf. Abschließend vergleichen sie die Objekte im Debugger.
Gruppenmodellierung: reale Objekte skizzieren
Gruppen wählen ein reales Szenario wie eine Schule, zeichnen Klassen (z.B. Schüler) und erzeugen Instanzen auf Papier. Sie diskutieren relevante Eigenschaften und erstellen Pseudocode.
Klassenpräsentation: Speicher simulieren
Die Klasse teilt sich in Gruppen auf, simuliert Speicherblöcke mit Karten für Objekte. Bei 'new' legen sie neue Karten aus und initialisieren Attribute gemeinsam.
Individuelle Codieraufgabe: Objekte erweitern
Jeder Schüler erweitert eine vorgegebene Klasse Bankkonto um neue Instanzen und testet Interaktionen. Ergebnisse werden in einem Klassenrepository geteilt.
Bezüge zur Lebenswelt
Softwareentwickler im Automobilsektor modellieren Fahrzeuge als Klassen. Jedes einzelne Auto auf der Straße ist dann eine Instanz dieser Klasse, mit spezifischen Attributen wie Kennzeichen, Farbe und Kilometerstand.
Spieleentwickler nutzen Klassen, um Spielfiguren zu definieren. Ein Charakter wie Mario ist eine Instanz der Klasse 'Spieler', mit individuellen Werten für Leben, Position und gesammelte Münzen.
Vorsicht vor diesen Fehlvorstellungen
Häufige FehlvorstellungEine Klasse ist selbst ein Objekt.
Was Sie stattdessen lehren sollten
Klassen sind Blaupausen, keine Instanzen. Aktive Codierübungen zeigen, dass 'new Klasse()' ein Objekt erzeugt, während die Klasse statisch bleibt. Peer-Reviews helfen, diesen Unterschied zu verinnerlichen.
Häufige FehlvorstellungAlle Objekte einer Klasse sind identisch.
Was Sie stattdessen lehren sollten
Jedes Objekt hat eigene Attribute. Praktische Simulationen mit mehreren Instanzen verdeutlichen Unabhängigkeit, Diskussionen klären, warum Änderungen an einem Objekt andere nicht beeinflussen.
Häufige FehlvorstellungDeklaration einer Klasse erzeugt sofort Objekte.
Was Sie stattdessen lehren sollten
Deklaration erstellt nur den Bauplan. Hands-on-Debugger-Sitzungen demonstrieren, dass Instanziierung separat erfolgt, was Speicherprozesse nachvollziehbar macht.
Ideen zur Lernstandserhebung
Geben Sie den Schülern eine einfache Klassendefinition (z.B. 'Hund' mit Attributen 'Name' und 'Rasse'). Bitten Sie sie, zwei Instanzen dieser Klasse zu erstellen und für jede Instanz die Attribute mit konkreten Werten zu füllen.
Zeigen Sie ein Code-Snippet, das ein Objekt erstellt. Fragen Sie: 'Welche Klasse wurde hier instanziiert?' und 'Nennen Sie zwei Attribute, die dieses Objekt haben könnte, basierend auf der Klasse.'
Diskutieren Sie die Modellierung eines 'Buches'. Welche Attribute sind für eine Bibliothek relevant (Titel, Autor, ISBN)? Welche für einen Leser (aktuelles Kapitel, Lesefortschritt)? Wie beeinflusst die Wahl der Attribute die Nützlichkeit des Modells?
Vorgeschlagene Methoden
Bereit, dieses Thema zu unterrichten?
Erstellen Sie in Sekundenschnelle eine vollständige, unterrichtsfertige Mission für aktives Lernen.
Eigene Mission generierenHäufig gestellte Fragen
Was ist der Unterschied zwischen Klasse und Objekt?
Wie kann aktives Lernen Schülern beim Verständnis von Klassen und Objekten helfen?
Wie wähle ich relevante Eigenschaften für eine Klasse aus?
Was passiert im Speicher bei der Objekterzeugung?
Planungsvorlagen für Informatik in der Oberstufe: Algorithmen, Daten und Gesellschaft
Mehr in Objektorientierte Modellierung
Attribute und Methoden
Die Schülerinnen und Schüler definieren Eigenschaften und Verhaltensweisen von Objekten.
2 methodologies
Konstruktoren und Destruktoren
Die Schülerinnen und Schüler lernen, wie Objekte initialisiert und Ressourcen freigegeben werden.
2 methodologies
Beziehungen zwischen Objekten: Assoziation
Modellierung von Interaktionen durch Assoziation und Komposition.
2 methodologies
Beziehungen zwischen Objekten: Aggregation und Komposition
Vertiefung der Modellierung von Teil-Ganzes-Beziehungen.
2 methodologies
Vererbung und Polymorphie
Effiziente Code-Wiederverwendung und flexible Schnittstellengestaltung durch Klassenhierarchien.
2 methodologies