Aktivität 01
Paararbeit: Attribut-Klassifikation
Paare erhalten reale Objekte wie Autos oder Bücher und listen Attribute auf. Sie klassifizieren diese als klassen- oder instanzspezifisch und begründen. Im zweiten Schritt definieren sie passende Methoden und notieren Zugriffe.
Wie unterscheiden sich Klassenattribute von Instanzattributen in ihrer Verwendung?
ModerationstippBeobachten Sie während der Paararbeit gezielt, ob beide Partner die Attribute korrekt klassifizieren oder ob einer die Einordnung dominiert – geben Sie bei Bedarf Impulsfragen wie 'Warum könnte dieses Attribut auch instanzspezifisch sein?'
Worauf zu achten istGeben Sie den Schülerinnen und Schülern ein kleines Code-Snippet einer Klasse. Bitten Sie sie, auf einem Zettel zu notieren: 1. Welches Attribut ist ein Klassenattribut und warum? 2. Nennen Sie eine Methode und erklären Sie, auf welches Attribut sie wahrscheinlich zugreift.
VerstehenAnwendenAnalysierenSelbstwahrnehmungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 02
Small Groups: Kapselungs-Modell
Gruppen modellieren eine Bankkonto-Klasse mit public-Methoden und private-Attributen. Sie implementieren in Pseudocode, testen Zugriffe und diskutieren Auswirkungen von Verletzungen der Kapselung.
Analysieren Sie, wie die Sichtbarkeit von Attributen (public/private) die Kapselung beeinflusst.
ModerationstippFordern Sie in der Kleingruppenarbeit ein konkretes Produkt ein, z.B. ein UML-Diagramm mit Sichtbarkeitsmarkierungen, das die Gruppe gemeinsam präsentiert und verteidigt
Worauf zu achten istStellen Sie die Frage: 'Stellen Sie sich eine Klasse 'Auto' vor. Nennen Sie zwei Instanzattribute und ein Klassenattribut. Erklären Sie kurz den Unterschied in ihrer Verwendung.' Sammeln Sie die Antworten und besprechen Sie typische Missverständnisse.
VerstehenAnwendenAnalysierenSelbstwahrnehmungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 03
Whole Class: Methoden-Zugriff-Analyse
Die Klasse analysiert vorgegebene Klassenbeispiele. Jeder Schüler markiert Zugriffe von Methoden auf Attribute, teilt in Plenum und vergleicht mit Partnern.
Begründen Sie, warum Methoden oft auf die Attribute desselben Objekts zugreifen.
ModerationstippLassen Sie bei der Methoden-Zugriffsanalyse bewusst fehlerhafte Code-Teile zeigen, um die Gruppe zur Fehlersuche zu aktivieren – nutzen Sie dabei die Tafel, um richtige und falsche Zugriffe farblich zu markieren
Worauf zu achten istLeiten Sie eine Diskussion mit der Frage: 'Warum ist es sinnvoll, dass Attribute oft als `private` deklariert werden, während Methoden `public` sind? Welche Vorteile hat das für die Wartbarkeit und Sicherheit des Codes?'
VerstehenAnwendenAnalysierenSelbstwahrnehmungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 04
Individual: Eigene Klasse entwerfen
Jeder Schüler entwirft eine Klasse für ein Alltagsobjekt, definiert Attribute mit Sichtbarkeit und Methoden. Peer-Review folgt in der nächsten Stunde.
Wie unterscheiden sich Klassenattribute von Instanzattributen in ihrer Verwendung?
ModerationstippGeben Sie beim Entwurf der eigenen Klasse klare Grenzen vor, z.B. 'Mindestens ein Klassenattribut und zwei private Instanzattribute', um Überforderung zu vermeiden und gezielte Anwendung zu fördern
Worauf zu achten istGeben Sie den Schülerinnen und Schülern ein kleines Code-Snippet einer Klasse. Bitten Sie sie, auf einem Zettel zu notieren: 1. Welches Attribut ist ein Klassenattribut und warum? 2. Nennen Sie eine Methode und erklären Sie, auf welches Attribut sie wahrscheinlich zugreift.
VerstehenAnwendenAnalysierenSelbstwahrnehmungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen→Einige Hinweise zum Unterrichten dieser Einheit
Erfahrene Lehrkräfte beginnen mit einfachen, alltagsnahen Beispielen wie einer 'Bankkonto'-Klasse, um Klassen- und Instanzattribute greifbar zu machen. Wichtig ist, die Sichtbarkeit von Anfang an als Schutzmechanismus zu betonen, nicht nur als Syntaxregel. Vermeiden Sie es, zu früh in Details wie Getter/Setter abzugleiten – stattdessen sollten Schülerinnen und Schüler zunächst die Grundidee der Kapselung durch Fehler selbst erfahren. Forschung zeigt, dass Lernende Konzepte wie Kapselung erst dann voll verstehen, wenn sie erleben, welche Probleme ohne sie entstehen.
Erfolgreiches Lernen zeigt sich, wenn Lernende die Unterschiede zwischen Klassen- und Instanzattributen sicher erklären, Sichtbarkeitsregeln gezielt anwenden und Methodenaufrufe mit Attributen korrekt verknüpfen können. Sie erkennen zudem, warum Kapselung Code wartbarer und sicherer macht.
Vorsicht vor diesen Fehlvorstellungen
Während der Paararbeit 'Attribut-Klassifikation' achten Sie darauf, dass manche Lernende alle Attribute pauschal als instanzspezifisch einstufen. Unterbrechen Sie die Diskussion und fragen Sie konkret: 'Wenn wir die Anzahl aller Konten in einer Bank tracken wollen – wäre das ein Klassen- oder Instanzattribut? Warum?'
Schlagen Sie den Lernenden vor, das Attribut 'anzahlKonten' in der Klasse 'Bank' zu definieren und es als Klassenattribut zu deklarieren. Lassen Sie sie testen, ob die Änderung 'anzahlKonten += 1' im Konstruktor der Klasse 'Konto' funktioniert – so wird der Unterschied erlebbar.
Während der Kleingruppenarbeit 'Kapselungs-Modell' beobachten Sie, wie Lernende Klassenattribute und Instanzattribute vertauschen. Geben Sie ihnen eine konkrete Aufgabe: 'Definieren Sie in Ihrer 'Auto'-Klasse ein Klassenattribut 'anzahlAutos' und ein Instanzattribut 'kilometerstand'. Zeigen Sie, wie sich 'anzahlAutos' bei jedem neuen Auto erhöht.'
Fordern Sie die Gruppe auf, den Code so zu ändern, dass 'anzahlAutos' nur über eine öffentliche Methode 'erhoeheAnzahlAutos()' verändert werden kann. Diskutieren Sie, warum direkte Zugriffe auf Klassenattribute gefährlich sein können, wenn sie z.B. von externen Klassen manipuliert werden.
Während der Methoden-Zugriffsanalyse im Plenum hören Sie den Satz 'Methoden dürfen nur auf ihre eigenen Attribute zugreifen'. Unterbrechen Sie und fragen Sie: 'Könnte eine Methode wie 'autoBeschleunigen()' auch auf das Attribut 'geschwindigkeit' eines anderen Autos zugreifen?'
Lassen Sie die Schülerinnen und Schüler in ihrem Code ein Szenario implementieren, in dem eine Methode 'ueberhole(Auto anderesAuto)' das Attribut 'geschwindigkeit' eines anderen Objekts liest – aber nur über dessen öffentliche Methode 'getGeschwindigkeit()'. So wird klar, dass Methoden auch auf andere Objekte zugreifen können, solange sie die Schnittstelle respektieren.
In dieser Übersicht verwendete Methoden