StR C. Müller/Dr. M. Ehmann Objektorientierung in den (Grund-) Modulen StR Carsten Müller carsten.mueller@uni-bayreuth.de Didaktik der Informatik Universität Bayreuth Dr. Matthias Ehmann matthias.ehmann@uni-bayreuth.de http://did.inf.uni-bayreuth.de
Ausgangslage / Intention objektorientierte Konzepte ziehen sich als roter Faden durch den IT- Lehrplan der Realschule und den Informatik-Lehrplan am Gymnasium Schüler haben häufig Schwierigkeiten, objektorientierte Konzepte (v.a. Begriffe Klasse und Beziehung ) zu verstehen und richtig anzuwenden in Modulprüfungen oder Staatsexamensprüfungen an der Univerisität zeigen sich auch bei den Studierenden immer wieder Verständnisprobleme bei Fragen zu objektorientierten Konzepten Bildungsverlag EINS und Winklers haben für alle acht Grundmodule sowie Teile der Aufbaumodule Schulbücher entwickelt trotz Genehmigung durch das KM auch hier Unstimmigkeiten bei objektorientierten Konzepten 2
A2 (Grundbegriffe der Objektorientierung) Ein neues Objekt wird erst vom Konstruktor der Klasse erzeugt, z.b. re0 = new RECHTECK() Umgekehrung ist richtig: Eine Klasse erzeugt ein Objekt Das Objekt mit dem Namen re0 ist eine Instanz der Klasse RECHTECK oder Das Objekt mit dem Namen re0 wurde von der Klasse RECHTECK erzeugt 3
A2 (Grundbegriffe der Objektorientierung) Impliziert eine Analogie zwischen Daten und Objekten Daten sind Repräsentationen von Information. Attribute und ihre Werte tragen auch Information, sind aber nicht (zwingend) Objekte. Sind Zeichnungen keine Objekte? 4
A2 (Grundbegriffe der Objektorientierung) Klassen sind keine Zusammenfassung von gleichartigen Objekten. Es gibt keine enthalten-sein -Beziehung zwischen Objekten und Klassen. Widerspruch: Objektkarte für dieses Rechteck Attribute 5
A2 (Grundbegriffe der Objektorientierung) Das ist keine Bedingung. Und wenn schon, weshalb nur verändernde und keine sondierende Methoden? Beide Notationen sind möglich. Sie beziehen sich hier auf das Werkzeug EOS. Aus objektorientierter Sicht ist die direkte Zuweisung nicht sinnvoll und in der Regel nicht möglich (Datenkapselung). 6
A2 (Grundbegriffe der Objektorientierung) Durchaus möglich aber Modul A2 ist keine Einführung in die Algorithmik. Es geht hier nicht um die Einführung von Kontrollstrukturen. 7
Widerspruch! A4 (Informationsbeschaffung, -verwertung und austausch) Eine Klasse ist ein Bauplan für Objekte mit gleichen Attributen und Methoden. Methoden besitzen am Ende immer ein Klammernpaar, z.b. erstellen(), sendenan(ziel) besser: Attributwerte angeben, z.b. Hans Meier, 532 KB oder 14.12.2011 8
A4 (Informationsbeschaffung, -verwertung und austausch) Genauer unterscheiden: Klassenkarten listen alle Attribute und Methoden auf, Objektkarten geben zusätzlich durch die Angabe von Attributwerten Auskunft über den aktuellen Zustands des bezeichneten Objekts Methoden sind keine Spezifika von Objekten. Alle Objekte einer Klasse haben dieselben Methoden. Notieren in der Klassenkarte ist nicht nötig bzw. nicht sinnvoll. nicht die wesentliche Unterscheidung, eher spezielle Darstellung in Schulbüchern (nicht UML-konform) besser: Unterscheidung durch die Angabe von Attributwerten Ungeschickt: Klassenkarte und Objektkarte einer Instanz einer anderen Klasse 9
A5 (Bildbearbeitung) Mischung der Begriffe Objekt und Klasse; ein Objekt kann nicht in Klassen unterteilt werden evtl. Vererbung (fraglich): die Klassen Pixelgrafik und Vektorgrafik sind Spezialisierungen der (abstrakten) Klasse Bild Klasse, kein Objekt! Klasse, kein Objekt! Objektkarte? 10
A5 (Bildbearbeitung) GRAFIKELEMENT breite höhe VEKTORGRAFIK mittelpunkt linienstärke PIXELGRAFIK erzeugt kreis1: VEKTORGRAFIK mittelpunkt = (1 2) linienstärke = 3 pt. 11
A5 (Bildbearbeitung) Klassennamen im Singular! Sehr ungenau formuliert! 12
A5 (Bildbearbeitung) genauer beschreiben, z.b. kreisgesicht, kreisaugelinks1, kreisaugelinks2, kreisaugerechts1, kreisaugerechts2, halbbogenmund 13
A5 (Bildbearbeitung) Eine Klasse ist kein Behälter für Objekte! Bei einheitlicher Schreibweise bleiben, hier: Klasse RECHTECK Sie haben IMMER DIESELBEN Attribute! 14
A6 (Einführung in die Tabellenkalkulation)? Völlig widersprüchliche Aussagen zum Attribut Datentyp! 15
A6 (Einführung in die Tabellenkalkulation) Schafft keinen Überblick, sondern stiftet Verwirrung! 16
A6 (Einführung in die Tabellenkalkulation) Warum zwei Klassen ZELLE? Kann eine Zelle nur Teil einer Zeile oder einer Spalte sein? 17
A6 (Einführung in die Tabellenkalkulation) Klassendiagramm: TABELLENKALKULATIONDOKUMENT Name Öffnen() SpeichernUnter(Dateiname) Speichern() Schließen() RECHENBLATT Bezeichnung BezeichnungÄndern(Name) ZEILE ZELLE SPALTE Nummer Zeilenhöhe enthält > Inhalt Formel Datentyp < enthält Bezeichnung Spaltenbreite 18
A6 (Einführung in die Tabellenkalkulation) Um welche Attribute handelt es sich hier? 19
A6 (Einführung in die Tabellenkalkulation) Das sind Attributwerte. Hier handelt es sich um Attribute. Verwirrender Zusammenhang 20
A7 (Informationsbearbeitung und präsentation) Die Methode gehezu() benötigt einen Parameter (vgl. Text)! Als Attribut der Klasse FOLIE kann hier nur ein (z.b. Hintergrund-) Bild verwaltet werden. Hier wäre eine Beziehung nötig, um die reale Situation in einer Präsentation nachzubilden. 21
D1 (Relationale Datenstrukturen) Die Aussage ist zwar korrekt, beschreibt aber nicht den modellierten Zusammenhang: Ein Kunde hat genau eine Postleitzahl. 22
StR C. Müller/Dr. M. Ehmann Objektorientierung in den (Grund-) Modulen StR Carsten Müller carsten.mueller@uni-bayreuth.de Didaktik der Informatik Universität Bayreuth Dr. Matthias Ehmann matthias.ehmann@uni-bayreuth.de http://did.inf.uni-bayreuth.de