Strukturierung – Objekte und Klassen
Zielsetzung
In der Erkundung hast du erste Erfahrungen damit gesammelt, wie man ein komplexes System (hier eine Ampel) sinnvoll modelliert und in Python implementiert. Auf dieser Seite werden die dahinterliegenden Konzepte herausgearbeitet.
Was ist ein Objekt?
Objekte unserer Welt sind fassbare Gegenstände (wie z.B. Schuhe oder Ampeln) oder auch Konstrukte unseres Denkens (wie z.B. Bankkonten).
Objekte haben gewisse Eigenschaften – man sagt Attribute –, die sie auszeichnen. Bei einer Ampel ist das z.B. der Zustand der drei Lampen:
Attribute einer Ampel:
rote Lampe: aus
gelbe Lampe: an
grüne Lampe: aus
Aufgabe 1
(a) Nenne Attribute deiner eigenen Schuhe.
Schuhe haben ein Modell oder eine Marke; die haben eine Größe, eine Verschlussart usw.
(b) Finde mindestens ein anderes Objekt im Klassensaal und finde Attribute dafür.
Methode einer Ampel:
an-/ausschalten (zur Wartung der Ampel)
Ampel weiterschalten
Ampel auf gelb-blinkend setzen (oft bei Nacht)
Aufgabe 2
(a) Nenne Methoden deiner eigenen Schuhe.
Man kann Schuhe zu-/aufschnüren. Eventuell kann man damit auch einen Nagel in die Wand schlagen ...
(b) Finde mindestens ein anderes Objekt im Klassensaal und finde Methoden dafür.
(c) Erkläre deinem Partner den Unterschied zwischen Attributen und Methoden.
Was ist ein Software-Objekt?
Man hat – sehr erfolgreich – Möglichkeiten gefunden, Software so zu organisieren, dass sie große Ähnlichkeiten zu Objekten unserer Welt aufweist.
In der Erkundung wurde ein Software-Objekt ampel
konzipiert, das so funktioniert,
wie eine Ampel der realen Welt.
Das folgende Ablaufprotokoll verdeutlicht die Arbeitsweise:
Im Ablaufprotokoll sind drei Objektdiagramme enthalten. Diese stellen immer den aktuellen Objektzustand (Wert der Attribute) dar.
Aufgabe 3
(a) Welche Attribute und Methoden kommen beim Software-Objekt ampel
in diesem Ablaufprotokoll zum Einsatz?
(b) Verdeutliche an dieser Situation noch einmal den Unterschied zwischen Attributen und Methoden.
In der Informatik ist ein Objekt eine Einheit, die Daten mit Hilfe von Attributen verwalten und Operationen zur Verarbeitung der verwalteten Daten mit Hilfe von Methoden ausführen kann.
Attribute sind – an Objekte gebundene – Variablen zur Verwaltung von Daten. Diese entsprechen in der Regel den Eigenschaften der betreffenden Objekte.
Methoden sind - an Objekte gebundene - Prozeduren oder Funktionen zur Verarbeitung von Daten. Diese Methoden werden ausgeführt, wenn das betreffende Objekt veranlasst wird, eine bestimmte Operation auszuführen.
Vom Objekt zur Klasse
In einer Stadt oder an einer Kreuzung gibt es nicht nur eine einzelne Ampel, sondern mehrere. Diese haben jedoch deutliche Gemeinsamkeiten: Sie alle verfügen über dieselben Attribute und Methoden. Trotzdem hat jedes Objekt seinen eigenen Objektzustand (es stehen ja nicht alle Ampeln gleichzeitig auf grün).
Da alle Ampeln ähnlich sind, kann man einen Bauplan für sie angeben.
Einen solchen Bauplan nennt man Klasse (Der Begriff wird hier im Sinne von „Klassifizieren“ verwendet.
Beim Klassifizieren geht es immer um die Gemeinsamkeiten von Objekten.
In der Erkundung stand auch class Ampel
im Quelltext.)
und stellt ihn mit einem Klassendiagramm dar:
Aufgabe 4
Dieses Klassendiagramm gibt bereits viele Informationen an, die man zur Implementierung benötigt:
(a) Wo erkenne ich die Datentypen der einzelnen Attribute?
(b) Wo erkenne ich, welche Parameter die Methoden verwenden? Wie wird deutlich gemacht, wenn eine Methode keine Parameter hat?
Eine besondere Methode ist Ampel()
. Diese dient dazu, ein Ampel-Objekt zu erzeugen;
das hast du auch in der Erkundung mit der Zuweisung ampel1 = Ampel()
selbst durchgeführt.
Man nennt eine solche Methode die Konstruktormethode.
Auch viele andere Objekte kann man zu Klassen zusammenfassen. Statt einen konkreten roten Sneaker der Größe 40 mit weißen Schnürsenkeln könnte man die allgemeine Klasse „Schuh“ betrachten.
Aufgabe 5
(a) Erstelle ein Klassendiagramm für die Klasse Schuh. Du musst dabei nicht unbedingt bereits Datentypen usw. angeben; es genügt die Darstellung der Attribute und Methoden.
(b) Erstelle für eine andere Klasse von Objekten ein Klassendiagramm.
Objekt als Exemplar einer Klasse
Ein Objekt (als Exemplar einer Klasse) ist eine Einheit, die nach dem Bauplan der zugeordneten Klasse erzeugt wurde. Ein Objekt verfügt somit über die Attribute, die in der Klasse festgelegt sind. Diesen Attributen können – im Unterschied zur Klasse – Attributwerte zugewiesen werden. Ein Objekt kann zudem sämtliche Methoden der Klasse ausführen. Ausgenommen bleibt hier nur die Konstruktormethode (s.o.). Objekte können mit Namen versehen werden, über die sie dann gezielt angesprochen werden können.
Das folgende Objekt- und Klassendiagramm zeigt eine Situation, in der zwei verschiedene
Ampel
-Objekte erzeugt wurden.
Beachte, dass man bei der Darstellung der Objekte die
aktuellen Attributwerte angibt. Beachte auch, dass man die von den Objekten ausführbaren Methoden weglässt,
da sie durch die Zuordnung zur Klasse klar sind.
Objektnamen werden unterstrichen und mit Doppelpunkt der zugehörige Klassennamen angegeben
(z.B. ampel1: Ampel).
Ist die zugehörige Klasse aus dem Kontext klar ersichtlich, kann der Klassennamen beim Objekt auch entfallen.
Aufgabe 6
(a) Erstelle ein vergleichbares Objekt- und Klassendiagramm für zwei verschiedene Schuhe.
(b) Erstelle für eine andere Klasse von Objekten ein solches Diagramm.
Das Wichtigste notieren
Aufgabe 7
Halte das Gelernte in diesem Wissensspeicher fest.
Im Wissensspeicher soll übersichtlich und prägnant das neu Gelernte dokumentiert werden. Die vorgegebene Struktur auf dem Wissensspeicher soll sicherstellen, dass alles Wichtige festgehalten wird; so werden z.B. nicht nur Definitionen, sondern in der Regel auch Beispiele, Vernetzungen oder Konventionen gefordert. Der Wissensspeicher kann verwendet werden, um ein im Unterricht erstelltes Tafelbild einfacher ins Heft zu übertragen. Es ist mit ihm aber auch möglich, die Sicherung stärker schüler:innen-orientiert zu gestalten: Je nach Unterrichtsgestaltung können die Schüler:innen nach einer Erarbeitung und Besprechung den gesamten Wissensspeicher selbst ausfüllen (im Unterricht, ggf. auch in der Hausaufgabe) oder hierfür zusätzlich das Online-Schulbuch zu Hilfe nehmen.
Quellen
- [1]: Schuhe - Urheber: Kris from Seattle - Lizenz: Creative Commons BY 2.0
- [2]: Schuhe1 - Urheber: Kris from Seattle - Lizenz: Creative Commons BY 2.0
- [3]: Schuhe2 - Urheber: Thomas Steiner - Lizenz: Creative Commons BY-SA 3.0
- [4]: Schuhe3 - Urheber: van Gogh (Maler) / Fotograf unbekannt - Lizenz: Public Domain