{"id":2197,"date":"2009-01-15T08:15:30","date_gmt":"2009-01-15T07:15:30","guid":{"rendered":"https:\/\/www.herr-rau.de\/wordpress\/?p=2197"},"modified":"2023-05-24T13:32:47","modified_gmt":"2023-05-24T11:32:47","slug":"zwei-arten-von-anschaulichkeit","status":"publish","type":"post","link":"https:\/\/www.herr-rau.de\/wordpress\/2009\/01\/zwei-arten-von-anschaulichkeit.htm","title":{"rendered":"Zwei Arten von Anschaulichkeit"},"content":{"rendered":"<div style='text-align:right;'><small>(<a href='https:\/\/www.herr-rau.de\/wordpress\/2009\/01\/zwei-arten-von-anschaulichkeit.htm#comments'>7 Kommentare.<\/a>)<\/small> <\/div>\n<p>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.)<br>In Java sieht das so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Rechteck {\n  \/\/Attribute\n  private int laenge;\n  private int breite;\n  private int xPosition;\n  private int yPosition;\n  private String fuellfarbe;\n  private boolean istSichtbar;\n}<\/code><\/pre>\n\n\n\n<p>Das hei\u00dft in Java, dass ein Objekt der Klasse Rechteck die Attribute L\u00e4nge, Breite, H\u00f6he, F\u00fcllfarbe haben soll, ebenso auch eine x- und eine y-Position, damit man es sp\u00e4ter in einem Koordinatensystem zeichnen kann. Als Werte sind meist nur ganze Zahlen erlaubt, nur die Farbe soll als Wort dastehen (also &#8222;blue&#8220;). Und au\u00dferdem gibt es noch ein Attribut istSichtbar, das nur die Werte wahr oder falsch annehmen kann.<\/p>\n\n\n\n<p>Dazu kommt dann zum Beispiel noch eine Methode, mit der man die Breite des Rechtecks \u00e4ndern kann:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void breiteSetzen(int neueBreite){\n  loeschen();\n  breite = neueBreite;\n  zeichnen();\n} <\/code><\/pre>\n\n\n\n<p>Wenn man die Methode zeichnen() aufruft, dann geht ein Zeichenfenster auf, und darin ist dann das Objekt. (Im Beispiel sind es zwei Rechtecke.)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"504\" height=\"527\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej.png\" alt=\"bluej\" class=\"wp-image-2201\" title=\"bluej\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej.png 504w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej-143x150.png 143w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/figure>\n\n\n\n<p>Nur: Das, was man sieht, sind eben mitnichten die Rechtecke. Das haben meine Sch\u00fcler auch gemerkt, als sie selbst zus\u00e4tzliche Methoden schreiben mussten. Sie haben darin die Attributwerte eines Rechteck-Objekts ge\u00e4ndert (zum Beispiel H\u00f6he 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\u00f6schen muss, und nach dem eigentlichen Methodeninhalt die Zeichnung wieder neu erstellen muss. Meine Sch\u00fcler hat das verwirrt. Dass die Methode tats\u00e4chlich funktioniert, auch wenn man das Dingens nicht neu zeichnen l\u00e4sst, 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.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"356\" height=\"275\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej2.png\" alt=\"bluej2\" class=\"wp-image-2202\" title=\"bluej2\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej2.png 356w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej2-150x115.png 150w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/figure>\n\n\n\n<p>Inzwischen arbeite ich nicht mehr mit diesen grafischen Klassen, und werde das beim n\u00e4chsten Mal noch weiter einschr\u00e4nken. F\u00fcr mich ist das nicht anschaulich. Ich verstehe den Drang, die Objekte in irgendeiner Form &#8222;sehen&#8220; zu k\u00f6nnen, und sei es nur als gezeichnete Repr\u00e4sentation. Aber meine Sichtweise ist anders. Das vorletzte Arbeitsblatt begann so:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>In einem Computerspiel &#8211; vorerst leider ohne Joystick und Monitor &#8211; sollen Boxk\u00e4mpfe simuliert werden.<br>Ein typischer Boxer soll einen Namen haben, ein Gewicht, und die zwei Werte St\u00e4rke und Geschwindigkeit. Au\u00dferdem soll er eine bestimmte Zahl von Lebenspunkten haben.<br>Bei jedem Boxer soll gespeichert werden, wie viele Siege er schon errungen hat, wieviel Niederlagen es gab und ob er Weltmeister ist oder nicht.<br>Lege dazu eine geeignete Klasse in BlueJ an.<\/p>\n<\/blockquote>\n\n\n\n<p>Und danach kriegt die Klasse Boxer noch weitere Methoden, und wird sp\u00e4ter mit der Klasse Trainer zusammenarbeiten und solche Sachen. Zu sehen sein wird nichts, au\u00dfer eine Nachricht in Form von Textausgabe: <code>Max hat jetzt noch 2 Lebenspunkte.<\/code> Denn echte grafische Programmierung ist zu schwer. Man kann die Zustands\u00e4nderungen von Boxern und Trainer nur \u00fcber die Textausgabe erfahren, oder indem man sich die aktuelle Zustandskarte eines Objekts, also die aktuellen Attributwerte, so wie oben zeigen l\u00e4sst:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"367\" height=\"325\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej3.png\" alt=\"bluej3\" class=\"wp-image-2203\" title=\"bluej3\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej3.png 367w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej3-150x132.png 150w\" sizes=\"auto, (max-width: 367px) 100vw, 367px\" \/><\/figure>\n\n\n\n<p>Ist das jetzt abstrakter oder konkreter, anschaulicher oder weniger anschaulich? Nun bin ich ja ein eher textgesteuerter Mensch, siehe auch meine anderen F\u00e4cher. F\u00fcr mich reichen W\u00f6rter, um etwas anschaulich und vorstellbar zu machen, und das manchmal besser als tats\u00e4chlich Ansehbares. Um den Boxer entsteht eine ganze Welt von weiteren m\u00f6glichen Attributen, Ideen f\u00fcr Methoden und von weiteren Klassen.<\/p>\n\n\n\n<p>Die Aufgaben im Buch sind meist mathematischer Natur. Schon auch sch\u00f6ne Aufgaben. Aber anschaulich finde ich vor allem den Boxer und solche Klassen.<\/p>\n\n\n\n<p>Als Einstieg in Java die L\u00f6sung der Aufgabe oben:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Boxer {\n  \/\/ Attribute\n  private int gewicht;\n  private int staerke;\n  private int geschwindigkeit;\n  private int lebenspunkte;\n  private boolean weltmeister;\n  private int siege;\n  private int niederlagen;\n  private String name;\n}<\/code><\/pre>\n\n\n\n<p>Fu\u00dfnote 1: In der 6. und 7. Klasse klappt das mit den Grafiken gut, da will ich nicht darauf verzichten.<br>Fu\u00dfnote 2: F\u00fcr die Komposition\/Aggregation muss ich vielleicht auf Auto- oder noch besser: Wagenrennen in der Antike zur\u00fcckgreifen. Vier Pferde bilden ein Gespann, dazu ein Wagen und ein Lenker, machen einen Wettkampfteilnehmer. Ich werde berichten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(7 Kommentare.) 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: Das hei\u00dft in Java, dass ein Objekt der Klasse Rechteck die Attribute L\u00e4nge, Breite, H\u00f6he, F\u00fcllfarbe haben soll, ebenso auch eine x- und [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":2201,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[25],"tags":[227],"class_list":["post-2197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-informatik","tag-informatik"],"jetpack_featured_media_url":"https:\/\/www.herr-rau.de\/wordpress\/archiv\/bluej.png","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/2197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/comments?post=2197"}],"version-history":[{"count":2,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/2197\/revisions"}],"predecessor-version":[{"id":57889,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/2197\/revisions\/57889"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/media\/2201"}],"wp:attachment":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/media?parent=2197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/categories?post=2197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/tags?post=2197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}