Unser Informatik-Buch (10) versucht, wie andere auch, Anschaulichkeit in Java dadurch zu erreichen, dass man mit grafischen Klassen wie RECHTECK und KREIS arbeitet. (Programmierumgebung: BlueJ.)
In Java sieht das so aus:
public class Rechteck {
//Attribute
private int laenge;
private int breite;
private int xPosition;
private int yPosition;
private String fuellfarbe;
private boolean istSichtbar;
}
Das heißt in Java, dass ein Objekt der Klasse Rechteck die Attribute Länge, Breite, Höhe, Füllfarbe haben soll, ebenso auch eine x- und eine y-Position, damit man es später in einem Koordinatensystem zeichnen kann. Als Werte sind meist nur ganze Zahlen erlaubt, nur die Farbe soll als Wort dastehen (also „blue“). Und außerdem gibt es noch ein Attribut istSichtbar, das nur die Werte wahr oder falsch annehmen kann.
Dazu kommt dann zum Beispiel noch eine Methode, mit der man die Breite des Rechtecks ändern kann:
public void breiteSetzen(int neueBreite){
loeschen();
breite = neueBreite;
zeichnen();
}
Wenn man die Methode zeichnen() aufruft, dann geht ein Zeichenfenster auf, und darin ist dann das Objekt. (Im Beispiel sind es zwei Rechtecke.)

Nur: Das, was man sieht, sind eben mitnichten die Rechtecke. Das haben meine Schüler auch gemerkt, als sie selbst zusätzliche Methoden schreiben mussten. Sie haben darin die Attributwerte eines Rechteck-Objekts geändert (zum Beispiel Höhe und Breite vertauscht), und die Zeichnung ist dennoch die gleiche geblieben. Das liegt daran, dass man, wie im Beispiel oben, vor dem eigentlichen Methodeninhalt erst die alte Zeichnung löschen muss, und nach dem eigentlichen Methodeninhalt die Zeichnung wieder neu erstellen muss. Meine Schüler hat das verwirrt. Dass die Methode tatsächlich funktioniert, auch wenn man das Dingens nicht neu zeichnen lässt, sieht man an dieser praktischen Einrichtung von BlueJ, mit der man auf einen Blick den aktuellen Zustand, also alle aktuellen Attributwerte, eines Objekts ablesen kann.

Inzwischen arbeite ich nicht mehr mit diesen grafischen Klassen, und werde das beim nächsten Mal noch weiter einschränken. Für mich ist das nicht anschaulich. Ich verstehe den Drang, die Objekte in irgendeiner Form „sehen“ zu können, und sei es nur als gezeichnete Repräsentation. Aber meine Sichtweise ist anders. Das vorletzte Arbeitsblatt begann so:
In einem Computerspiel – vorerst leider ohne Joystick und Monitor – sollen Boxkämpfe simuliert werden.
Ein typischer Boxer soll einen Namen haben, ein Gewicht, und die zwei Werte Stärke und Geschwindigkeit. Außerdem soll er eine bestimmte Zahl von Lebenspunkten haben.
Bei jedem Boxer soll gespeichert werden, wie viele Siege er schon errungen hat, wieviel Niederlagen es gab und ob er Weltmeister ist oder nicht.
Lege dazu eine geeignete Klasse in BlueJ an.
Und danach kriegt die Klasse Boxer noch weitere Methoden, und wird später mit der Klasse Trainer zusammenarbeiten und solche Sachen. Zu sehen sein wird nichts, außer eine Nachricht in Form von Textausgabe: Max hat jetzt noch 2 Lebenspunkte.
Denn echte grafische Programmierung ist zu schwer. Man kann die Zustandsänderungen von Boxern und Trainer nur über die Textausgabe erfahren, oder indem man sich die aktuelle Zustandskarte eines Objekts, also die aktuellen Attributwerte, so wie oben zeigen lässt:

Ist das jetzt abstrakter oder konkreter, anschaulicher oder weniger anschaulich? Nun bin ich ja ein eher textgesteuerter Mensch, siehe auch meine anderen Fächer. Für mich reichen Wörter, um etwas anschaulich und vorstellbar zu machen, und das manchmal besser als tatsächlich Ansehbares. Um den Boxer entsteht eine ganze Welt von weiteren möglichen Attributen, Ideen für Methoden und von weiteren Klassen.
Die Aufgaben im Buch sind meist mathematischer Natur. Schon auch schöne Aufgaben. Aber anschaulich finde ich vor allem den Boxer und solche Klassen.
Als Einstieg in Java die Lösung der Aufgabe oben:
public class Boxer {
// Attribute
private int gewicht;
private int staerke;
private int geschwindigkeit;
private int lebenspunkte;
private boolean weltmeister;
private int siege;
private int niederlagen;
private String name;
}
Fußnote 1: In der 6. und 7. Klasse klappt das mit den Grafiken gut, da will ich nicht darauf verzichten.
Fußnote 2: Für die Komposition/Aggregation muss ich vielleicht auf Auto- oder noch besser: Wagenrennen in der Antike zurückgreifen. Vier Pferde bilden ein Gespann, dazu ein Wagen und ein Lenker, machen einen Wettkampfteilnehmer. Ich werde berichten.
Schreibe einen Kommentar