Programmierung mit BlueJ -...
Transcript of Programmierung mit BlueJ -...
![Page 1: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/1.jpg)
Informatik 1 mit BlueJ
Ein Kurs für die Stufe 10 / 11
von Ulrich Helmich
Teil 1Folgen 1 bis 3
3. Auflage Mai 2010
![Page 2: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/2.jpg)
Folge 1 -BlueJ! 31.1 Installation und Einrichtung von BlueJ! 3
1.2 Kennenlernen von BlueJ! 5
1.3 Mit BlueJ ein Bild malen! 13
1.3 Klassen und Objekte ! 21
Folge 2 - Wir programmieren! 242.1 Wir programmieren ein Bild! 24
2.2 UML-Diagramme (neu!)! 36
Folge 3 - Sie werden gewogen!! 393.1 Entwurf der eigenen Klasse "Waage"! 39
3.2 Eingabe über die Konsole (neu!)! 52
3.3 Fallunterscheidungen! 55
3.4 Die if-Anweisung! 61
3.5 Die if-else-Anweisung! 66
3.6 Geschachtelte if-else-Anweisungen! 69
3.7 Übungen zum Projekt Waage ! 73
3.8 Weitere Übungen zur if-else-Anweisung! 76
3.9 Die switch-Anweisung! 77
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 2 von 79
![Page 3: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/3.jpg)
Folge 1 -BlueJ
Workshop
1.1 Installation und Einrichtung von BlueJSchritt 1 - Windows-AnwenderFalls noch nicht auf Ihrem Rechner vorhanden (Systemadministrator fragen), laden Sie sich von der Webseite www.sun.com das aktuelle Java-Entwicklungs-Kit (JDK) für Windows herunter. Die Java-Runtime-Umgebung (JRE) reicht für unsere Zwecke nicht aus, damit können Sie lediglich Java-An-wendungen und -Applets zum Laufen bringen, aber keine Java-Anwendungen oder -Applets entwi-ckeln.
Schritt 1 - MacOS X - AnwenderIhr Betriebssystem enthält bereits alles Nötige, um Java-Anwendungen zu schreiben, sogar eine pro-fessionelle Entwicklungsumgebung ist auf der System-DVD vorhanden und kann bei Bedarf instal-liert werden. Da Sie aber mit BlueJ arbeiten werden, ist dieser Schritt nicht notwendig.
Schritt 2Laden Sie sich BlueJ von der Webseite www.blueJ.org herunter. Für MacOS X und Windows gibt es "richtige" Programme (BlueJ.app bzw. BlueJ.exe), für alle anderen Plattformen eine entsprechende Java-Anwendung. Ich selbst arbeite mit der BlueJ Version 2.5.1 für MacOS X, mit der ich sehr gute Erfahrungen gemacht habe.
Ihr Betriebssystem entpackt die ZIP-Datei wahrscheinlich zunächst auf Ihren Desktop in einen Ordner, der in geöffneter Form unter MacOS X so aussieht:
1-1 Der BlueJ-Ordner unter MacOS 10.5
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 3 von 79
![Page 4: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/4.jpg)
Schritt 3Kopieren Sie den Ordner dann auf ein Laufwerk, für das Sie Schreibzugriff besitzen. Auf Apple-Rechnern unter MacOS X kann es sein, dass Ihr Ordner zunächst einen reinen Lesezugriff anzeigt, in diesem Fall müssen Sie sich selbst erst einen Schreibzugriff verschaffen. Bei Windows-Systemen können ähnliche Probleme auftreten, vor allem, wenn Sie nicht als Administrator angemeldet sind, was ja die Regel ist.
Schritt 4Starten Sie die BlueJ-Anwendung durch einen Doppelklick. Unter Windows müssen Sie beim ersten Starten von BlueJ angeben, wo sich auf Ihrer Festplatte das JDK befindet (java developement kit, siehe Schritt 1). In der Regel liegt es direkt auf der Startpartition C: oder in dem Ordner C:/Programme. Unter MacOS X sind diese Angaben nicht notwendig.
Schritt 5War vorher BlueJ noch nie auf Ihrem Rechner installiert, erscheint jetzt ein leeres Fenster mit eng-lisch beschrifteten Buttons und Menü-Einträgen. Wie man BlueJ auf Deutsch umstellen kann, erfah-ren Sie in dem Kasten unten auf dieser Seite. Das Umstellen auf die deutsche Sprache funktioniert aber nur dann, wenn Sie Schreibzugriff auf den BlueJ-Ordner haben. In vielen Schul-Anlagen liegt der BlueJ-Ordner auf Laufwerk C: im Ordner "Programme", und der Administrator hat den Schreib-zugriff unterbunden. Bei den heutigen Preisen für USB-Sticks kann ich Ihnen nur raten, sich einen solchen zu kaufen, 2 oder 4 GB reichen völlig aus, um sowohl BlueJ wie auch Ihre Programme und sonstigen Dateien zu installieren.
BlueJ auf Deutsch umstellen / Schreibzugriff erforderlich!1. Beenden Sie das Programm BlueJ.
2. Suchen Sie auf Ihrer Festplatte den BlueJ-Ordner und öffnen Sie ihn durch einen Doppel-klick.
3. Bei Windows 2000 oder XP:Öffnen Sie durch einen Doppelklick den Unterordner "lib"
Bei MacOS X:Klicken Sie mit der rechten Maustaste auf das Symbol "BlueJ.app" und wählen Sie dann den Befehl Paketinhalt zeigen. Im Ordner "Contents" finden Sie einen Unterordner "Resources", der wiederum einen Unterordner "Java" enthält. Öffnen Sie diesen Unterord-ner.
4. Jetzt müssen Sie die Datei "bluej.defs" mit einem Texteditor öffnen.
5. Suchen Sie den Abschnitt mit den Sprachdefinitionen. Schreiben Sie dann ein Doppel-kreuz # vor den Eintrag bluej.language = englisch und entfernen Sie das Doppel-kreuz vor dem Eintrag bluej.language = german.
6. Speichern Sie die veränderte Datei und starten Sie BlueJ erneut. Jetzt müssten alle Be-schriftungen in deutscher Sprache erscheinen.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 4 von 79
![Page 5: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/5.jpg)
Workshop
1.2 Kennenlernen von BlueJSchritt 1Ihr frisch installierter BlueJ-Ordner enthält einen Unterordner namens "examples". Dieser Unter-ordner enthält Beispiel-Programme, und mit einem dieser Beispielprogramme wollen wir uns jetzt näher beschäftigen.
Wählen Sie den Menü-Befehl Projekt öffnen aus dem BlueJ-Menü Projekt. Er erscheint eine Lis-te von acht Projekten. Wählen Sie hier das Projekt "shapes" und klicken Sie dann auf Öffnen. Falls Sie mit der deutschen Version der Beispiele arbeiten, so heißt das entsprechende Projekt "Figuren".
Die deutsche Version der Beispieldateien war bis 2008 frei verfügbar; im Augenblick (2010) kommt man "auf normalen Wegen" nicht mehr an die deutsche Version heran. Daher werde ich mich auch in diesem Skript immer wieder auf die englische Version beziehen. Unabhängig von der Sprache der Beispielprojekte können Sie aber die Sprache von BlueJ selbst auf Deutsch umstellen; wie das geht, wurde ja am Ende des letzten Workshops erklärt.
1-2 Das Beispiel-Projekt "shapes"
So wie in der Abbildung 1-2 müsste Ihr Projekt am Ende von Schritt 6 jetzt aussehen.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 5 von 79
![Page 6: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/6.jpg)
Schritt 2Was machen wir jetzt mit dem Projekt? Zunächst spielen wir mal ein bisschen herum. Führen Sie einen Doppelklick auf den Kasten mit der Bezeichnung "Triangle" aus.
1-3 Hilfe, ein Java-Que"tex!!!
Du meine Güte, was ist das denn? Offensichtlich ein Java-Quelltext. Aber damit wollen wir uns doch in den ersten Workshops noch gar nicht beschäftigen. Also schnell das Fenster wieder schlie-ßen!
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 6 von 79
![Page 7: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/7.jpg)
Schritt 3Jetzt klicken wir mal mit der rechten Maustaste auf einen der vier orangefarbenen Kästen. Mal se-hen, was nun passiert.
1-4 Nach einem Rechts-Klick auf "Circle"
Ein Quelltext-Fenster erscheint zum Glück nicht, aber dafür ein so genanntes Kontextmenü mit fünf Befehlen, von denen aber einer deaktiviert ist. Der für uns wichtigste Befehl ist Übersetzen (falls Sie mit englischen Einstellungen arbeiten: Compile) Wir führen diesen Befehl nun aus und sehen nach, ob sich etwas im BlueJ-Fenster getan hat.
KontextmenüEin Menü, das normalerweise nicht sichtbar ist. Erst dann, wenn der Benutzer mit der rechten Maustaste auf ein bestimmtes Element klickt, öffnet sich ein Kontextmenü und bietet eine Reihe von Befehlen an, die sich direkt auf das angeklickte Element beziehen (Abfrage von In-formationen, Verändern von Werten).
ÜbersetzenAutomatische Umwandlung eines lesbaren Quelltextes in eine Reihe von Anweisungen, die nur der Computer versteht.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 7 von 79
![Page 8: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/8.jpg)
1-5 Nach Ausführen des Befehls "Übersetzen" bzw. "Compile"
Die beiden unteren Kästchen - "Canvas" und "Circle" - sind nicht mehr schraffiert, während die bei-den oberen Kästchen so geblieben sind, wie sie vorher waren. Der Übersetzungs-Befehl hat tatsäch-lich etwas bewirkt. Was dabei genau passiert ist, werden Sie im nächsten Schritt erfahren.
Schritt 4Klicken Sie jetzt mit der rechten Maustaste auf den Kasten "Circle" bzw. "Kreis":
1-6 Rechtsklick auf "Circle", nachdem der Befehl "Übersetzen" ausgeführt wurde
Sehen Sie den Unterschied zu vorher? Nach dem Übersetzen stehen plötzlich neue Befehle zur Verfügung, vor allem new Circle() ist hier interessant. Was passiert, wenn man mit der Maus diesen Befehl auswählt?
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 8 von 79
![Page 9: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/9.jpg)
Schritt 5Führen Sie den Befehl new Circle() aus! Es erscheint sofort eine Dialogbox:
1-7 Die Wirkung des Befehls "new Circle"
Der Titel der Dialogbox böte schon genug Stoff für einen ganzen Theorieteil: Objekt erzeugen. Die Übersetzung des englischen Kommentars oben in der Dialogbox lautet: "Erzeuge einen neuen Kreis an der Standard-Position mit der Standard-Farbe". Den vorgegebenen Namen "circle1" ändern wir erst einmal nicht, sondern übernehmen ihn mit einem Klick auf den OK-Button.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 9 von 79
![Page 10: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/10.jpg)
Um zu sehen, was durch das Ausführen des Befehls new Circle() passiert ist, schauen wir uns jetzt das BlueJ-Fenster an:
1-8 Das BlueJ-Fenster nach dem Ausführen des Befehls "new Circle()".
Wir haben ein Objekt circle1 erzeugt. Auf gleiche Weise kann man weitere Objekte erzeugen:
1-9 Zwei Circle-Objekte wurden bereits erzeugt, ein drittes wird gerade erzeugt
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 10 von 79
![Page 11: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/11.jpg)
In der Abbildung 1-9 sieht man die beiden Circle-Objekte circle1 und sonne. Das dritte Circle-Objekt mond wird gerade erzeugt; es muss nur noch auf den OK-Button geklickt werden. Objekte werden übrigens in diesem Skript künftig in rot geschrieben. Auch für Klassen und Methoden wurde eine eigene Typographie (Schreibweise) gewählt, um die Übersicht zu erhöhen.
Schritt 6Sie sollen nun ein Square-Objekt erzeugen. Welche Schritte sind dazu notwendig? Überlegen Sie einmal selbst!
Schritt 6.1: Sie müssen mit der rechten Maustaste auf den Kasten Square klicken und den Befehl Übersetzen ausführen. Dadurch verschwindet die Schraffur des Kastens. Aber - was ist denn das? Das BlueJ-Fenster hat sich nach dem Ausführen des Übersetzen-Befehls wieder verändert:
1-10 Wo sind die Objekte?
Die ganzen mühselig angelegten Circle-Objekte sind verschwunden! Offensichtlich werden die Ob-jekte nicht gespeichert.
Schritt 6.2: Sie müssen den new Square()-Befehl aufrufen, damit ein Square-Objekt erzeugt und als roter Kasten im unteren Bereich des BlueJ-Fensters angezeigt wird.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 11 von 79
![Page 12: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/12.jpg)
Die Erfahrungen mit Objekten und Klassen, die wir bisher gemacht haben, sollten wir uns jetzt mal merken:
ObjekteObjekte werden in Java zur Laufzeit aus Klassen erzeugt, sie existieren nur von einem Übersetzungs-Vorgang bis zum nächsten. Objekte werden - im Gegensatz zu Klassen - nicht abgespeichert.
KlassenKlassen sind in Java Vorlagen zur Erzeugung von Objekten. Klassen beschreiben das Ver-halten von Objekten, wie Objekte Informationen austauschen und vieles mehr. Die Definiti-on einer Klasse wird in einer Textdatei gespeichert, die auch als Quelltext bezeichnet wird.
Und jetzt kommen wir auch schon zu Ihrer ersten Aufgabe:
Übung 1.1Erzeugen Sie zwei Objekte sonne und mond aus der Klasse Circle, ein Square-Objekt haus und ein Triangle-Objekt dach.
Damit haben Sie Ihren ersten Workshop zum Umgang mit BlueJ hoffentlich erfolgreich abgeschlos-sen. Im nächsten Workshop wollen wir mit den eben erlernten Techniken ein kleines Bild malen.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 12 von 79
![Page 13: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/13.jpg)
Workshop
1.3 Mit BlueJ ein Bild malenBei diesem Workshop gehe ich davon aus, dass Sie wissen, wie man Objekte aus den Klassen Cir-cle, Square und Triangle erzeugt.
Schritt 1Erzeugen Sie ein Objekt sonne der Klasse Circle sowie ein Objekt kasten der Klasse Square. Ihr BlueJ-Fenster müsste dann ungefähr so aussehen wie in Abbildung 1-11.
1-11 Erzeugen von Objekten einer Klasse
1-12 Die Methoden eines Objektes
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 13 von 79
![Page 14: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/14.jpg)
Schritt 2Klicken Sie mit der rechten Maustaste auf den roten Kasten des Objektes sonne. Es erscheint ein sehr langes Kontextmenü mit vielen Einträgen (siehe Abbildung 1-12). Die beiden untersten Einträge sind Befehle, wie Sie sie bereits kennen gelernt haben: Inspect und Remove. Rufen wir den Befehl Inspect auf, so können wir das Objekt sonne in Ruhe untersuchen. Und wenn wir den Befehl Remove aufrufen, wird das Objekt sonne wieder entfernt.
Die anderen Einträge wie zum Beispiel
void makeVisible()
sind besondere Befehle, die man als Methoden bezeichnet.
MethodenBefehle oder Anweisungen, mit denen man das Verhalten von Objekten beeinflussen oder den Status von Objekten abfragen kann.
Mit Methoden wie changeColor() oder moveUp() kann man Objekte direkt beeinflussen. Ruft man zum Beispiel die Methode moveRight() auf, so bewegt sich das Objekt auf dem Bildschirm um 20 Pixel nach rechts, und durch den Aufruf der Methode changeSize() kann man den Durch-messer eines Kreises oder die Kantenlänge eines Quadrats verändern. Methoden zum Abfragen des Objekt-Status haben wir noch nicht kennen gelernt.
Schritt 3Bevor wir Objekte bewegen können, müssen sie erst einmal sichtbar gemacht werden. Auch dazu existiert eine bestimmte Methode, nämlich makeVisible().
Klicken Sie mit der rechten Maustaste auf das Objekt sonne der Klasse Circle und rufen Sie die Methode makeVisible() auf.
1-13 Ein sichtbar gemachtes Objekt der Klasse Circle
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 14 von 79
![Page 15: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/15.jpg)
Das Ergebnis dieses Methoden-Aufrufs sehen Sie in Abbildung 1-13. Es erscheint ein neues Fenster mit weißem Hintergrund. In diesem Fenster wird ein blauer Kreis angezeigt. Sie haben durch den Aufruf der Methode den Zustand des Objektes sonne verändert: Vorher war das Objekt nicht sichtbar, jetzt ist es in dem Fenster zu sehen. Methoden wie makeVisible(), die den Zustand eines Objektes verändern, heißen verändernde oder manipulierende Methoden.
Manipulierende MethodenMethoden, die einen oder mehrere Attributwerte eines Objektes und damit den Zustand eines Objektes verändern können.
Wenn wir mit Lineal und Zirkel einen "echten" Kreis auf ein Blatt Papier zeichnen wollen, benöti-gen wir genau drei Angaben: Den X-Wert und den Y-Wert des Mittelpunktes sowie den Radius des Kreises. Damit können wir den "Zustand" eines solchen Kreises genau definieren. Auch ein Kreis-Objekt unseres BlueJ-Projektes wird durch solche Eigenschaften oder Attribute definiert.
Attribute und AttributwerteAttribute definieren bestimmte Eigenschaften eines Objektes wie beispielsweise seine Farbe. Attributwerte sind die konkreten Werte, die Attribute haben können. Das Attribut color kann z.B. den Attributwert yellow haben.Alle Objekte ein- und derselben Klasse haben die gleichen Attribute, können aber völlig un-terschiedliche Attributwerte haben.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 15 von 79
![Page 16: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/16.jpg)
Schritt 4Wir wollen nun untersuchen, durch welche Attribute die Circle-Objekte bestimmt werden. Dazu legen wir ein Circle-Objekt an und klicken dann mit der rechten Maustaste auf den roten Kasten, der das Objekt repräsentiert. Aus dem Kontextmenü wählen wir den Befehl Inspect. Dies ist keine Methode, sondern ein übergeordneter Befehl, mit dessen Hilfe man vorhandene Objekte näher un-tersuchen - inspizieren - kann.
1-14 Beim Inspizieren eines Objektes werden seine Attribute sichtbar
Wir erkennen fünf Attribute, die den Zustand des Circle-Objektes circle1 genau definieren:
Attribut Datentyp Bedeutung Attributwert
diameter int Durchmesser 30
xPosition int Koordinaten desKreis-Mittelpunktes
20
yPosition int
Koordinaten desKreis-Mittelpunktes
60
color String Farbe "blue"
isVisible boolean gibt an, ob das Objekt sichtbar ist
false
1-15 Die fünf Attribute eines Circle-Objektes. Zum Thema Datentypen siehe weiter untern.
Die Tabelle macht außerdem den Unterschied zwischen Attribut und Attributwert klar. Jedes Circle-Objekt hat ein Attribut namens diameter. Zwei verschiedene Circle-Objekte können aber unterschiedliche Durchmesser haben. Ein großer Kreis hat vielleicht einen Durchmesser von 100 Pi-xeln, ein kleiner Kreis einen von 20 Pixeln. Die beiden Circle-Objekte haben unterschiedliche At-tributwerte. Versuchen wir nach diesen Überlegungen noch mal eine vernünftige Definition des Begriffs Status bzw. Zustand:
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 16 von 79
![Page 17: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/17.jpg)
Status bzw. ZustandGesamtheit der Attributwerte eines Objektes.
Objekte der gleichen Klasse, bei denen sämtliche Attributwerte übereinstimmen, haben den gleichen Status.
Schritt 5Wie jedermann weiß, ist unsere Sonne groß und gelb und nicht klein und blau. Sie sollen jetzt aus dem "blauen Zwerg" eine normale gelbe Sonne machen. Dazu müssen Sie weitere verändernde Methoden aufrufen.
1-16 komfortable Eingabe eines Parameters in eine BlueJ-Methode
Wenn Sie die Methode changeColor() aufrufen, erscheint ein Dialogfenster mit dem Titel "BlueJ: Method Call" bzw. "BlueJ: Methodenaufruf" (Abb. 1-16). Im oberen Teil des Fensters werden Sie ausführlich über die Bedeutung der Methode aufgeklärt. In das Textfeld im unteren Teil des Dialogfensters müssen Sie die neue Farbe des Kreises eintippen. Wichtig ist, dass Sie die Farbe in Anführungszeichen setzen. Also nicht einfach yellow eingeben, sondern "yellow".
Babylonische SprachverwirrungDie Namen der Methoden und Werte hängen davon ab, ob Sie die deutschen oder die engli-schen Beispielprojekte verwenden. Die Namen der Buttons und der System-Befehle hängen davon ab, ob Sie Ihr BlueJ auf Deutsch oder auf Englisch eingestellt haben. Unabhängig davon können Sie Objekte, die Sie selbst anlegen, benennen, wie Sie wollen.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 17 von 79
![Page 18: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/18.jpg)
ZwischenüberlegungKönnen Sie den Unterschied zwischen den beiden Methoden makeVisible() und changeColor() mit wenigen Worten zusammenfassen?
Die Methode makeVisible() kann einfach so aufgerufen werden. Es sind keine weiteren Angaben not-wendig. Der Aufruf der Methode macht den vorher unsichtbaren Kreis sichtbar.
Die Methode changeColor() kann nicht einfach so aufgerufen werden. Wenn Sie die Farbe eines Kreises ändern wollen, so müssen sie genau angeben, welche Farbe der Kreis haben soll. Die Metho-de benötigt eine zusätzliche Information. In der Informatik bezeichnet man solche zusätzlichen In-formationen für Methoden als Parameter.
ParameterInformationen, die einer Methode beim Aufruf übergeben werden müssen, damit sie korrekt arbeiten kann.
Die Methode changeColor() benötigt genau einen Parameter, nämlich die neue Farbe. Es gibt aber auch Methoden, die zwei, drei oder mehr Parameter benötigen. Wenn Sie zum Beispiel ein Objekt der Klasse Dreieck anlegen und dann die Größe ändern wollen, so müssen Sie die neue Höhe und die neue Breite des Dreiecks eingeben, also zwei Parameter.
Übung 1.2 Erzeugen Sie zwei Objekte der Klasse Triangle und verändern Sie die Farbe, die Position und die Größe der beiden Dreiecke.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 18 von 79
![Page 19: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/19.jpg)
Schritt 6Sie können sich bestimmt schon denken, wie die Größe der Sonne verändert werden kann. Sie müssen die Methode changeSize() aufrufen. Auch diese Methode benötigt einen Parameter, näm-lich die neue Größe, die der Kreis haben soll. Im Gegensatz zu changeColor() dürfen Sie jetzt kei-ne Zeichenkette in das Textfeld des Dialogfensters eintippen, sondern es wird ein anderer Daten-typ erwartet, nämlich ein Zahlenwert. Tippen Sie jetzt die Zahl 100 ein - ohne Anführungszeichen wohlgemerkt.
DatentypenKonkrete Angaben über den Wertebereich einer Variable, eines Parameters oder eines At-tributs werden in vielen Programmiersprachen mit Hilfe von Datentypen verwirklicht.
Datentypen in JavaBisher haben wir folgende Datentypen kennengelernt:
int - ganze Zahlen
String - Zeichenketten
Daneben gibt es noch folgende wichtigen Datentypen in Java:
float, double - reelle Zahlen
char - einzelnes Zeichen
boolean - Wahrheitswert, true oder false
void - "leerer" Datentyp, wird verwendet, wenn angegeben werden soll, dass keiner der ande-ren Datentypen benötigt wird.
Bei jedem Attribut und jedem Parameter einer Methode muss genau angegeben werden, zu welchem Datentyp sie gehören.
Haben Sie es bemerkt? Es gibt in Java unterschiedliche Typen von Parametern. Bei changeColor() müssen Sie einen Text in Anführungszeichen eintippen - einen so genannten String (deutsch: Zei-chenkette). Bei changeSize() dagegen müssen Sie eine ganze Zahl eingeben. Bei jedem Parameter muss man genau beachten, zu welchem Datentyp (siehe Kasten) er gehört.
Jetzt hat der Kreis nicht nur eine andere Farbe, sondern ist auch größer geworden. Durch den Auf-ruf der manipulierenden Methode changeColor() haben Sie das Attribut color des Objektes kreis1 verändert. Vorher hatte das Attribut color den Attributwert "blue", jetzt hat es den Attri-butwert "yellow". Durch den Aufruf der Methode changeSize() wurde entsprechend der Attribut-wert des Attributes diameter geändert.
Manipulierende Methoden (Neudefinition)Methoden, die einen oder mehrere Attributwerte eines Objektes und damit den Status des Objektes verändern.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 19 von 79
![Page 20: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/20.jpg)
ÜbungKontrollieren Sie bitte, ob Sie in Ihrem BlueJ-Projekt folgende Objekte erzeugt haben: Einen Kreis namens sonne, einen zweiten Kreis namens mond, ein Quadrat namens haus und ein Dreieck namens dach.
Rufen Sie dann für jedes der Objekte die Methode makeVisible() auf. Ihr "Gemälde" sollte dann ungefähr so aussehen wie in Abbildung 1-17, falls Sie den Kreis sonne bereits wie oben besprochen verändert haben. Wenn nicht, sehen Sie nur einen blauen Kreis, der in Wirklich-keit aber aus zwei Kreisen sonne und mond besteht, die jedoch die gleichen Koordinaten haben und daher übereinander liegen.
Versuchen Sie dann durch geschickten Aufruf geeigneter Methoden ein Bild zu malen, wie es in der Abbildung 1-18 dargestellt ist.
1-17 So sieht ihr "Bild" zunächst aus. 1-18 Dieses Bild so"en Sie zeichnen
Tipp für das nächste Kapitel:
Schreiben Sie sich genau auf, welche Methoden Sie in welcher Reihenfolge mit welchen Parametern aufgerufen haben. Das sollte Ihnen die nächste Übung in der nächsten Folge stark erleichtern.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 20 von 79
![Page 21: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/21.jpg)
Theorieteil
1.3 Klassen und Objekte
Was sind eigentlich Klassen und Objekte? Es gibt in der Informatik-Didaktik mehrere verschiedene Ansätze, die-sen Unterschied zu erklären. Ich werde hier drei dieser Ansätze vorste"en.
Ansatz 1: Die Auto-AnalogieIn der Garage Ihres Nachbarn steht ein weißer Passat. Die Farbe bröckelt schon etwas ab, weil er 12 Jahre alt ist. Vorne rechts in der Windschutzscheibe ist ein kleiner Riss, und die Antenne ist an zwei Stellen verbogen. Das Auto, das Sie jeden Tag sehen, ist ein ganz bestimmter Passat, den man anhand dieser Eigenschaften oder Attribute eindeutig von anderen Fahrzeugen des gleichen Typs unter-scheiden kann.
Etwas völlig anderes ist es, wenn Sie von einem Bekannten gefragt werden: "Wie findest Du eigent-lich den neuen Passat von VW?" Damit ist kein individuelles Fahrzeug mehr gemeint, sondern die ganze Baureihe.
Was hat das jetzt alles mit Klassen und Objekten zu tun? Nun, die Baureihe Passat entspricht einer Klasse. Der Passat in der Garage ist aber ein Objekt.
Eine Klasse ist etwas Abstraktes, man kann "die Baureihe Passat" nicht anfassen oder sehen. Wenn man dagegen einen bestimmten Passat sieht, so sieht man immer ein konkretes Objekt. Den "Passat des Nachbarn" kann man anfassen, man kann ihn fahren und so weiter.
Eine Java-Klasse kann man dagegen durchaus sehen - hier hinkt der Vergleich also etwas. Wenn wir auf den Kasten der Klasse Circle klicken, öffnet sich ein Fenster, in dem der Java-Quelltext der Klasse zu sehen ist.
Von einer Klasse kann es viele Objekte geben: Von der Baureihe Passat fahren viele Tausend Exemp-lare in Deutschland herum. Jedes Passat-Objekt unterscheidet sich von anderen Passat-Objekten. Der eine Passat ist weiß, der andere blau. Ein Passat hat 90 PS, der andere 110. Einer hat einen Sylt-Au&leber, der andere einen Heck-Spoiler. Jedes Passat-Objekt hat also bestimmte Attribute (Ei-genschaften), anhand derer es man erkennen kann. Selbst wenn zwei Passate absolut gleich aussehen (gleiche Farbe, gleiche PS-Zahl, gleiche Beule vorne links, weil sie den gleichen Fußgänger erwischt haben), so haben sie trotzdem auch ein paar unterschiedliche Attribute: Die Fahrgestellnummer und die Kennzeichen sind beispielsweise verschieden. Selbst wenn es einer Bande von Autoschiebern gelingt, die Fahrgestellnummer und die Kennzeichen zu fälschen, so dass sie bei beiden Fahrzeugen übereinstimmen, befinden sich die beiden Autos doch an unterschiedlichen Koordinaten.
Dies alles gilt auch für Java-Klassen. Von der Klasse Circle kann man beliebig viele Objekte anlegen. Allerdings ist es in Java durchaus möglich, zwei absolut gleiche Objekte einer Klasse zu erzeugen, die in allen Attributen übereinstimmen. In einem Punkt würden sich diese beiden Objekte allerdings doch unterscheiden, nämlich in ihrem Namen. Man kann in einem Java-Programm nicht zwei Ob-jekte anlegen, die den gleichen Namen haben.
Die Attribute von Objekten sind veränderbar: Man kann die krumme Antenne eines Passats wieder geradebiegen oder die schadhafte Windschutzscheibe reparieren lassen. Und die Position eines Passat-Objektes ändert sich sowieso ständig, wenn das Auto gefahren wird. Hier ist die Analogie
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 21 von 79
![Page 22: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/22.jpg)
vollständig. Auch Java-Objekte kann man verändern, indem man die Attributwerte ändert. Zu die-sem Zweck gibt es die manipulierenden Methoden.
Ansatz 2: Die Stempel-Analogie
1-19 Ein Stempel (von unten)
Betrachten Sie den Stempel eines Gehaltsbüros einer Firma (Abb. 1-19). Der Angestellte in diesem Büro haut diesen Stempel immer auf Karteikarten, und dann trägt er die vier Angaben (ich habe die-ses Beispiel stark vereinfacht) auf die Karteikarte ein. Das könnte z.B. so aussehen wie in Abbildung 1-20.
1-20 Zwei Stempelabdrücke, mit Daten ausgefü"t
Zunächst macht der Angestellte die Karteikarte von Gabi Böhler fertig. Als nächstes bearbeitet er die Karte von Klaus Baum. Diese Karteikarte unterscheidet sich von der ersten, obwohl sie mit dem gleichen Stempel hergestellt wurde. Es ist nicht schwer zu erraten, was hier die Klasse und was ein Objekt sein soll. Der Stempel ist die Klasse, während die ausgefüllten Stempelabdrücke auf den Karteikarten die Objekte sind. Bisher liegen zwei Objekte vor, die sich in ihren Attributwerten un-terscheiden: Name, Vorname, Alter und Gehalt sind unterschiedlich. Wenn der Angestellte im Büro aber fleißig ist, wird er im Laufe des Tages noch viel mehr solcher Objekte produzieren. Und zwar mit seinem Werkzeug zur Herstellung von Objekten, dem Stempel. Ähnlich wie der Stempel ist auch eine Klasse eine Vorlage zur Herstellung von Objekten.
Dies ist eigentlich eine sehr schöne Analogie. Den Stempel muss man erst herstellen, damit man Abdrücke machen kann. Ähnlich muss man eine Java-Klasse zuerst programmieren, man muss den Quelltext aufschreiben und speichern und kompilieren. Erst dann kann man Objekte der Klasse an-legen.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 22 von 79
![Page 23: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/23.jpg)
Ansatz 3: Die Word-AnalogieSie haben sicherlich schon einmal mit Word-Formatvorlagen gearbeitet. Wenn man zum Beispiel einen Geschäftsbrief schreiben will, so doppelklickt man einfach auf die gewünschte Formatvorlage. Word erzeugt dann ein neues Dokument, das genauso aufgebaut ist, wie in der Formatvorlage festge-legt wurde. Die Formatvorlage ist also eine Vorschrift zur Konstruktion von Dokumenten. Wenn Sie das Word-Dokument speichern wollen, müssen sie ihm einen eindeutigen Namen geben. Danach können Sie ein zweites Dokument von der gleichen Vorlage erzeugen (Abb. 1-21), ein drittes und so weiter.
1-21 Formatvorlagen bei Word
Der Zusammenhang mit Klassen und Objekten sollte Ihnen jetzt klar sein: Die Formatvorlage ent-spricht einer Klasse, und das konkrete Dokument ist ein Objekt. Auch hier gilt wieder: Klassen sind Vorlagen zur Erstellung von Objekten, und die verschiedenen Objekte einer Klasse unter-scheiden sich voneinander durch unterschiedliche Attributwerte.
KlassenVorlagen zur Erstellung von Objekten. Bei der Konstruktion einer Klasse werden die Attri-bute und die Methoden definiert, die allen Objekten dieser Klasse eigen sind. Die konkreten Attributwerte können sich jedoch von Objekt zu Objekt unterscheiden.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 23 von 79
![Page 24: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/24.jpg)
Folge 2 - Wir programmieren
Workshop
2.1 Wir programmieren ein Bild In den Übungen der Folge 1 haben Sie die Methoden der Klassen Circle, Square und Triangle mit Hilfe der rechten Maustas-te aus einem Kontextmenü ausgewählt. Wenn Sie die Farbe des Kreis-Objektes sonne verändern wollten, mussten Sie erst die Methode changeColor() mit der Maus anwählen und dann in das Dialog-fenster den Wert des Parameters eingeben: "yellow". Ähnlich mussten Sie bei der Änderung der Größe, der Änderung der Position und so weiter verfahren. In dieser Folge werden Sie eine völlig andere Verfah-rensweise kennen lernen, mit der Sie das Gleiche sehr viel eleganter erreichen kön-nen. Sie werden programmieren!
Programmieren heißt, dass Sie die einzelnen Methoden eines Objektes wie sonne nicht mit der rechten Maustaste aus einem Kontextmenü auswählen, sondern dass Sie die Methodenaufrufe sowie die benötigten Parameter in eine Textdatei hineinschreiben, zum Beispiel so:
sonne.makeVisible();
sonne.changeSize(100);
sonne.changeColor("yellow");
Eine solche Textdatei wird als Quelltext bezeichnet. Der Quelltext wird dann kompiliert, das heißt in ausführbaren Maschinencode übersetzt. Wie von Zauberhand erscheint dann plötzlich in einem neuen Programmfenster das Bild von dem Haus mit der Sonne und dem Mond.
Noch eine Vorbemerkung zur Sprachwahl:Ich habe diesen Teil des Skripts vor längerer Zeit geschrieben, als ich noch die deutschen Beispiel-Quelltexte zur Verfügung hatte. Daher finden Sie auf den folgenden Seiten entsprechend deutsche Befehle, statt Circle also Kreis und statt makeVisible() also sichtbarMachen(). Ich hoffe, Sie werden durch diesen Wechsel nicht verwirrt.
2-1 Erzeugen einer neuen Klasse
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 24 von 79
![Page 25: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/25.jpg)
Schritt 1 - Neue Klasse erzeugenÖffnen Sie das Projekt "Figuren" bzw. "shapes" und klicken Sie den Button zur Erzeugung einer neuen Klasse an. Sie werden aufgefordert, der Klasse einen Namen zu geben und einen Typ zuzuweisen. Wäh-len Sie als Name "Zeichnung" und als Typ "Klasse" bzw. "Class", so wie in Abbildung 2-1 gezeigt. Kli-cken Sie dann auf den OK-Button. Danach müss-ten Sie ein Bild sehen, wie es in der Abbildung 2-2 dargestellt ist. Man sieht die vier Klassen des Pro-jektes "Figuren" und die neue Klasse Zeichnung. Die Schraffierung der Klasse Zeichnung deutet darauf hin, dass Sie den Quelltext dieser Klasse noch nicht kompiliert haben.
Schritt 2 - Minimal-Quelltext eingebenDoppelklicken Sie auf die Klasse Zeichnung. Es öffnet sich ein Fenster mit dem Quelltext der Klasse. Die Programmierer von BlueJ haben Ihnen in gut gemeinter Absicht schon viel Arbeit abge-nommen. Am besten lernen Sie Java jedoch, wenn Sie den von BlueJ erzeugten Quelltext komplett löschen und dann folgenden eigenen Quelltext in das Editor-Fenster eintippen. BlueJ ist nur eine von vielen Entwicklungsumgebungen für Java; andere Programme sind nicht so nett, dass sie Ihnen den halben Quelltext erzeugen. Daher müssen Sie in der Lage sein, den kompletten Quelltext einer Java-Klasse aufzuschreiben.
public class Zeichnung
{
public Zeichnung()
{
}
}
Wenn Sie ein Programm wie Photoshop starten und den Befehl Datei/Neu wählen, so öffnet sich eine neue leere Zeichnung. Bei einer Textverarbeitung erzeugen Sie mit Datei/Neu ein neues leeres Textdokument. Ähnlich ist dieser Java-Minimal-Quelltext zu verstehen, der - wenn man ihn näher betrachtet - aus zwei Ebenen besteht:
public class Zeichnung{
}
public Zeichnung(){
}
Die Klasse Zeichnung
Der Konstruktor
Die äußere Ebene steht für die gesamte Klasse Zeichnung, und die innere Ebene definiert den Konstruktor der Klasse.
2-2 Die neue Klasse wurde erzeugt.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 25 von 79
![Page 26: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/26.jpg)
Exkurs: Was ist ein Konstruktor?Zunächst einmal die Definition:
KonstruktorSpezielle Methode einer Klasse, die aufgerufen werden muss, wenn ein Objekt dieser Klasse erzeugt werden soll.
Nun die Erläuterung:
Betrachten wir die Klasse Kreis. Wenn Sie im BlueJ-Fenster mit der rechten Maustaste auf diese Klasse klicken und dann den Befehl new Kreis() auswählen, müssen Sie zunächst einen Namen für das zu erzeugende Kreis-Objekt eingeben, beispielsweise "sonne". Wenn Sie dann mit dem OK-But-ton bestätigen, wird automatisch, ohne dass Sie es bemerken, der Konstruktor der Klasse Kreis aufgerufen. Dieser Konstruktor sorgt dann dafür, dass ein Objekt der Klasse Kreis mit der Be-zeichnung "sonne" erzeugt wird. Außerdem sorgt der Konstruktor - wieder merken Sie nichts davon - dafür, dass das Objekt eine bestimmte Ausgangsfarbe, Ausgangsgröße und Ausgangsposition hat.
Schritt 3 - MethodenNeben dem Konstruktor haben Klassen normalerweise viele andere Methoden. Wir wollen die Klas-se Zeichnung jetzt um eine solche "richtige" Methode ergänzen; zunächst mit einer leeren Metho-de, die wir später mit Inhalt füllen:
public class Zeichnung
{
}
public Zeichnung()
{
}
Die Klasse Zeichnung
Der Konstruktor
public void sichtbarMachen()
{
}
Eine normale Methode
Kompilieren Sie den Quelltext, erzeugen Sie ein Objekt bild der Klasse, und klicken Sie dann mit der rechten Maustaste auf bild. Tatsächlich taucht jetzt die neue Methode sichtbarMachen() im Kontextmenü des Objektes bild auf. Allerdings passiert nichts, wenn Sie auf die Methode klicken. Das ist aber auch kein Wunder, schließlich haben Sie noch keine Befehle in die Methode hineinge-schrieben.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 26 von 79
![Page 27: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/27.jpg)
Schritt 4 - Einen Kreis erzeugen und sichtbar machenErgänzen Sie den Quelltext wie folgt um drei Zeilen (hier blau gedruckt):
public class Zeichnung
{
private Kreis sonne;
public Zeichnung()
{
sonne = new Kreis();
}
public void sichtbarMachen()
{
sonne.sichtbarMachen();
}
}
Wir wollen uns die drei neuen Zeilen einzeln betrachten.
4.1 - Das Attribut sonneDie Zeile
private Kreis sonne;
sorgt dafür, dass die Klasse Zeichnung ein Attribut mit dem Namen sonne bekommt. Man spricht hier auch von der Deklaration des Attributs.
private
public
Datentyp Bezeichner ;
2-3 Syntaxdiagramm für die Deklaration eines Attributs
Die Syntax (grammatische Regeln) für die Deklaration eines Attributs ist in Abbildung 2-4 darge-stellt. Zuerst kommt das Schlüsselwort private (oder public), dann muss der Datentyp des Attributs angegeben werden, und schließlich kommt der Name des Attributes, der so genannte Be-zeichner. Die Deklaration wird wie jeder Java-Befehl mit einem Semikolon abgeschlossen. Der Da-tentyp kann zum Beispiel String, int, float oder boolean sein oder der Name einer Klasse. Für
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 27 von 79
![Page 28: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/28.jpg)
den Bezeichner eines Attributs gelten einfache lexikalische Regeln: Das erste Zeichen sollte ein Kleinbuchstabe sein, ansonsten darf der Name Klein- und Großbuchstaben sowie Ziffern enthalten, aber keine Leerzeichen, Umlaute, Satzzeichen oder andere Zeichen. Der Bezeichner 2. Quartal wäre also in dreifacher Hinsicht falsch. Er fängt mit einer Ziffer an, enthält einen Punkt, und enthält ein Leerzeichen. Dagegen wäre der Bezeichner zweitesQuartal lexikalisch korrekt, ebenso wie der Bezeichner quartal2.
Übung 2.1
Überprüfen Sie bitte folgende Attribut-Deklarationen auf lexikalische und syntak-tische Fehler sowie auf sinnvolle Namensgebung und sinnvolle Groß/Klein-Schrei-bung.
Lexikalischer Fehler = ein Wort wurde falsch geschrieben (Fehler in der Rechtschreibung).
Syntaktischer Fehler = die Regeln zur Bildung eines Ausdrucks wurden verletzt (Fehler in der Grammatik).
Sinnvo"e Namensgebung = der Name des Attributs sollte möglichst viel über Sinn und Zweck des Attributs aussagen, eindeutig und auch recht kurz sein.
Sinnvo"e Groß/Klein-Schreibung = ein Attribut sollte immer mit einem Kleinbuchstaben begin-nen. Besteht ein Attribut aus mehreren Worten, sollte jedes weitere Wort mit einem Groß-buchstaben beginnen.
1. public int sichtbarMakken;
2. private boolean ist Wahr?
3. Radius: int;
4. privat flaot;
5. void keinWert;
6. public float Radius;
7. public float radius;
8. private int 2Zahlen;
9. private int dasIstDieZweiteZahlDieDerBenutzerEingegebenHat;
10. private float cdiuotrsd';
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 28 von 79
![Page 29: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/29.jpg)
Exkurs: HAT-BeziehungenHätten Sie geschrieben
private int sonne;
so hätte das Attribut sonne den Datentyp int, es wäre also lediglich zum Speichern einer ganzen Zahl geeignet. Ein Objekt wie zum Beispiel einen bunten Kreis mit Koordinaten, Größe, Farbe etc. könnte man in dem einfachen int-Attribut dann nicht speichern. Das wäre so, als wollten Sie einen Gartenstuhl in einer kleinen Nachttischschublade verstauen.
Hätten Sie dagegen geschrieben
private String sonne;
so könnte das Attribut sonne eine lange Zeichenkette wie "Morgen geht die Sonne auf" speichern. Einen bunten Kreis könnte man aber immer noch nicht in dem Attribut unterbringen. Bildlich ge-sprochen, wäre die Schublade immer noch zu klein.
Wenn Sie jedoch schreiben:
private Kreis sonne;
speichert das Attribut sonne tatsächlich ein Objekt der Klasse Kreis. Jetzt haben sie quasi die pas-sende Schublade gefunden.
Fassen wir einmal zusammen, was wir jetzt gemacht haben. Wir haben eine Klasse Zeichnung de-klariert, also eine Klasse, von der wir später Objekte herstellen wollen. Diese Klasse Zeichnung enthält bestimmte Attribute - wie das bei Klassen ja auch normal ist. Eines dieser Attribute, nämlich sonne, ist nun seinerseits ein Objekt einer anderen Klasse, nämlich Kreis. Diesen Sachverhalt kann man auch folgendermaßen ausdrücken: Die Klasse Zeichnung HAT ein Objekt der Klasse Kreis.
2-4 Eine HAT-Beziehung zwischen Kreis und Zeichnung
Die Pfeile in der Abbildung 2-4 repräsentiert solche HAT-Beziehungen. Die Pfeile weisen stets von der übergeordneten Klasse zu der untergeordneten Klasse, nicht umgekehrt. Üblicherweise wird die Pfeilspitze eines solchen HAT-Pfeils schwarz bzw. geschlossen dargestellt.
HAT-Beziehung A ===> BKlasse A besitzt (hat) Attribute (mindestens 1), die Objekte der Klasse B sind.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 29 von 79
![Page 30: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/30.jpg)
Eine übergeordnete Klasse wie Zeichnung kann ein einziges Objekt einer anderen Klasse besitzen, oder auch mehrere verschiedene Objekte der gleichen Klasse. So könnte unsere Klasse Zeichnung auch zwei, drei oder beliebig viele Objekte der Klasse Kreis besitzen. Allerdings müssten diese Ob-jekte dann unterschiedliche Namen haben, sie können nicht alle sonne heißen, sondern müssen dann als sonne, mond, pizza, rad und so weiter bezeichnet werden.
Eine Klasse kann auch Objekte verschiedener anderer Klassen besitzen. Die Klasse Zeichnung könnte neben den zwei, drei oder vier Kreis-Objekten auch noch ein, zwei, drei oder mehrere Quadrat- oder Dreieck-Objekte haben.
4.2 - Das Objekt sonne initialisierenMit der Deklaration des Objektes sonne ist es noch nicht getan. Die Deklaration eines Objektes ist sozusagen die Vorbereitung; es wird Speicherplatz reserviert, damit überhaupt erst ein Objekt an-gelegt werden kann. Das Objekt selbst existiert aber noch nicht, wenn wir es nur deklariert haben. Es ist ein weiterer Schritt erforderlich, nämlich die Initialisierung des Objektes.
Die Initialisierung von Objekten erfolgt meistens im Konstruktor derjenigen Klasse, welche das Objekt benötigt. Da die Klasse Zeichnung ein Objekt sonne der Klasse Kreis benötigt, wird das Objekt sonne im Konstruktor von Zeichnung initialisiert.
Ergänzen Sie daher den Quelltext des Konstruktors bitte folgendermaßen:
public Zeichnung()
{
sonne = new Kreis();
}
Bezeichner = new Konstruktor ;
2-5 Syntaxdiagramm für die Initialisierung eines Objektes
Erst kommt der Bezeichner des neuen Objektes, hier also sonne. Dann kommt das Zuweisungs-symbol = und anschließend der Befehl new. Der letzte Teil der Initialisierung besteht in dem Aufruf des Konstruktors des neuen Objektes.
Erinnern Sie sich noch, wie Sie "per Hand" ein Objekt der Klasse Kreis erzeugt haben? Richtig: Sie haben mit der rechten Maustaste auf die Klasse Kreis geklickt und dann den Befehl new Kreis() ausgewählt. Anschließend wurden Sie gefragt, wie das neue Objekt heißen soll. Hier haben Sie "sonne" eingetippt. Genau das gleiche haben wir jetzt in den Konstruktor der Klasse Zeichnung hineinprogrammiert.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 30 von 79
![Page 31: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/31.jpg)
4.3 - Das Objekt sonne sichtbar machenDie dritte Stelle, die Sie ergänzen müssen, ist die Methode sichtbarMachen(). Die Klasse Zeich-nung hat jetzt ein Objekt sonne. Keine Angst, Sie müssen jetzt keine komplizierten Java-Befehle zum Zeichnen von Kreisen lernen, sondern können einfach die bereits vorhandenen Methoden der Klasse Kreis aufrufen:
public void sichtbarMachen()
{
sonne.sichtbarMachen();
}
Dieses Vorgehen nennt man auch Delegation. Die Methode sichtbarMachen() der Klasse Zeichnung muss selbst kaum etwas leisten, sie ruft lediglich die Methode sichtbarMachen() des Objektes sonne auf und delegiert damit die Hauptarbeit an das Objekt sonne. Wie das Sichtbar-machen des Objektes genau funktioniert, interessiert weder die Klasse Zeichnung noch den Pro-grammierer, solange die Methode einwandfrei funktioniert.
2-6 Die neue Klasse Zeichnung funktioniert
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 31 von 79
![Page 32: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/32.jpg)
Der Quelltext der Klasse Zeichnung müsste nach diesen Schritten folgendermaßen aussehen:
public class Zeichnung
{
private Kreis sonne;
public Zeichnung()
{
sonne = new Kreis();
}
public void sichtbarMachen()
{
sonne.sichtbarMachen();
}
}
Falls Sie mit den englischen Beispieldateien arbeiten, sollten Sie auch Ihre eigene Klasse sowie die Methoden dieser Klasse in englisch programmieren, sonst sieht das Ganze recht komisch aus. Hier ein möglicher Quelltext:
public class Drawing
{
private Circle sun;
public Drawing()
{
sun = new Circle();
}
public void makeVisible()
{
sun.makeVisible();
}
}
Schritt 5 - Die Zeichnung wird sichtbarErzeugen Sie jetzt - nachdem Sie also den Quelltext wie oben angegeben ergänzt haben - ein Objekt bild der Klasse Zeichnung. Klicken Sie das Objekt mit der rechten Maustaste an und rufen Sie dann die Methode sichtbarMachen() auf. Wenn Sie alles richtig gemacht haben, müsste jetzt ein Fenster mit einem kleinen blauen Kreis erscheinen, so wie in Abbildung 2-6 dargestellt.
Jetzt könnte man kritisch einwenden, dass eine Sonne normalerweise groß und gelb und nicht wie in der Zeichnung klein und blau ist. Da hätte dieser Kritiker vollkommen Recht. Aber bevor wir daran gehen, und die Sonne entsprechend manipulieren, wollen wir uns überlegen, wie man die Zeichnung mit weiteren Graphik-Objekten ausstatten kann.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 32 von 79
![Page 33: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/33.jpg)
Schritt 6 - Zwei ObjekteDas ist - ehrlich gesagt - noch nicht allzu beeindruckend, was wir bisher geschafft haben. Wir wollen jetzt den Quelltext der Klasse Zeichnung um ein weiteres Objekt ergänzen, und zwar um ein gro-ßes grünes Quadrat. Wie bereits festgestellt wurde, kann eine übergeordnete Klasse ja zwei, drei oder auch mehrere verschiedene Objekte der gleichen untergeordneten Klasse enthalten. Außerdem kann eine Klasse Objekte verschiedener untergeordneter Klassen besitzen. Von dieser Eigenschaft machen wir jetzt Gebrauch.
6.1 - Zweites Objekt deklarierenWir benötigen für das große grüne Quadrat ein zweites Objekt innerhalb der Klasse Zeichnung - natürlich diesmal ein Objekt der Klasse Quadrat. Also müssen wir zunächst ein Objekt der Klasse Quadrat deklarieren. Nennen wir das Quadrat-Objekt doch einfach mal haus.
public class Zeichnung
{
private Kreis sonne;
private Quadrat haus;
...
6.2 - Das zweite Objekt initialisierenMit der Deklaration ist es noch nicht getan; das zweite Objekt muss auch initialisiert werden. Da-zu erweitern wir den Konstruktor von Zeichnung um eine zweite Zeile:
public Zeichnung()
{
sonne = new Kreis();
haus = new Quadrat();
}
6.3 - Das zweite Objekt anzeigenWir müssen schließlich die Methode sichtbarMachen() der Klasse Zeichnung so ergänzen, dass auch das Objekt haus angezeigt wird wird.
public void sichtbarMachen()
{
sonne.sichtbarMachen();
haus.sichtbarMachen();
}
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 33 von 79
![Page 34: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/34.jpg)
6.4 - ZusammenfassungSchauen wir und das alles noch mal im Zusammenhang an. Die neuen Zeilen des Quelltextes sind blau geschrieben, die alten schwarz.
public class Zeichnung
{
private Kreis sonne;
private Quadrat haus;
public Zeichnung()
{
sonne = new Kreis();
haus = new Quadrat();
}
public void sichtbarMachen()
{
sonne.sichtbarMachen();
haus.sichtbarMachen();
}
}
Dies ist der Quelltext, der - fast - zum richtigen Ergebnis führt. Allerdings ist das Quadrat weder groß noch grün, aber zumindest ist es schon mal vorhanden. Es wird in seiner Standardansicht dar-gestellt.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 34 von 79
![Page 35: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/35.jpg)
Schritt 7 - Verändern eines ObjektesDas Haus soll jetzt grün und groß werden. Dazu erinnern wir uns wieder daran, wie wir das in Folge 1 dieses Kurses per Hand gemacht haben: Rechtsklick auf die entsprechenden Objekte und Aufruf der richtigen Methoden. Genau so müssen wir es auch jetzt machen, nur diesmal müssen wir die Methodenaufrufe programmieren:
public void sichtbarMachen()
{
sonne.sichtbarMachen();
haus.sichtbarMachen();
haus.groesseAendern(100);
haus.vertikalBewegen(100);
haus.farbeAendern("gruen");
}
Wenn Sie den Quelltext der Klasse Zeichnung jetzt kompilieren und dann mit der rechten Maus-taste ein Objekt der Klasse Zeichnung erzeugen, so führt ein Aufruf der Methode sichtbarMa-chen() zu dem gewünschten Ergebnis. Das Quadrat ist groß und grün und befindet sich auch schon weiter unten.
Übung 2.2 (3 Punkte)
Ergänzen Sie den Quelltext der Klasse Zeichnung so, dass ein ähnliches Bild wie in Folge 1 entsteht, nämlich ein Haus mit einem Dach, dahinter eine Sonne und ein Mond:
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 35 von 79
![Page 36: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/36.jpg)
Für Klausurleute und Abiturienten
2.2 UML-Diagramme (neu!)Im Zentralabitur in NRW wird von den Schülern verlangt, dass Sie mit UML-Diagrammen umgehen können. Sie müssen in der Lage sein, ein einfaches UML-Diagramm zu zeichnen, und Sie müssen in der Lage sein, ein etwas komplexeres UML-Diagramm zu verstehen und zu beschreiben. Wir haben hier noch nicht über dieses Thema geredet, aber ich wette, dass Sie die zweite Anforderung bereits erfüllen. Betrachten Sie doch einmal das folgende UML-Diagramm:
Zeichnung
- sonne: Kreis- haus: Quadrat
C Zeichnung()+ sichtbarMachen(): void
Quadrat
- size: int- color: String
C Quadrat()+ sichtbarMachen(): void+ nachLinks(int):void+ nachRechts(int):void+ farbeAendern(String):void
Kreis
- radius: int- color: String
C Kreis()+ sichtbarMachen(): void+ nachLinks(int):void+ nachRechts(int):void+ farbeAendern(String):void
2-7 Ein UML-Diagramm der Klassen Kreis, Quadrat und Zeichnung
Das UML-Diagramm stellt die drei bisher verwendeten Klassen Kreis, Quadrat und Zeichnung dar und verdeutlicht die Beziehungen zwischen den drei Klassen. Jede Klasse wird durch ein Recht-eck darsgestellt, das in drei Bereiche eingeteilt ist. Im oberen Abschnitt steht der Name der Klasse, also beispielsweise Quadrat. Im zweiten Abschnitt stehen die Attribute der Klasse, und im dritten Abschnitt die Methoden.
Bei größeren Klassen schreibt man nicht alle Attribute und Methoden auf, sondern nennt nur die wichtigsten. Mit einem Plus- oder Minus-Symbol vor dem Attribut oder der Methode kennzeichnet man öffentliche (public) oder private Attribute / Methoden.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 36 von 79
![Page 37: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/37.jpg)
AttributeHinter dem Attributnamen gibt man den Datentyp des Attributs an. Diese Schreibweise unterschei-det sich deutlich von der Syntax in einem Java-Programm. Vergleichen wir einmal:
Java-Programm: ( private int x;
UML-Diagramm: - x : int
Das ist auf den ersten Blick verwirrend. Aber man muss sich klar machen, dass UML ja keine Pro-grammiersprache ist, sondern eine Modellierungssprache (unified modelling language = UML). Mit UML macht man den Au)au von Klassen sowie die Beziehungen zwischen Klassen deutlich. Ein Fachmann kann aus einem UML-Diagramm wie in der Abbildung 2-7 sofort ein entsprechendes Ja-va-Programm herstellen. Er kann daraus aber auch ein gleichwertiges Pascal- oder C++- oder PHP-Programm machen. UML ist programmiersprachen-unabhängig! Daher die von Java abweichende Syntax.
MethodenBetrachten wir einmal die Methoden der Klasse Quadrat, die im UML-Diagramm berücksichtigt werden:
C Quadrat()+ sichtbarMachen(): void+ nachLinks(int):void+ nachRechts(int):void+ farbeAendern(String):void
Vor dem Methodennamen steht ein Plus- oder ein Minuszeichen. Der Konstruktor wird durch den Buchstaben C gekennzeichnet. Auf den Methodennamen folgt die Parameterliste - sofern überhaupt Parameter vorhanden sind. Andernfalls kennzeichnet man das Fehlen von Parametern durch eine leere Parameterliste ( ). Die Namen der Parameter sind für das UML-Diagramm äußerst unwichtig, daher gibt man sie nicht an, sondern nur die Datentypen der Parameter. Diese sind wiederum recht wichtig. Wenn ich eine Methode wie farbeAendern() aufrufen möchte, so muss ich nur wissen, dass ich jetzt einen String als Parameter übergeben muss, zum Beispiel "yellow". Wie der Program-mierer diesen Parameter bezeichnet hat, als er die Klasse Quadrat geschrieben hat, ist für mich dabei völlig gleichgültig. Meinetwegen kann er ihn "anna" genannt haben; ich merke davon ja nichts, sondern schreibe in meinen Quelltext einfach
haus.farbeAendern("yellow");
falls ich mit den deutschen Beispielen arbeite, andernfalls
house.changeColor("yellow");
Nach der Parameterliste kommt schließlich noch der Rückgabetyp der Methode. Bei manipulieren-den Methoden handelt es sich dabei immer um void. Sondierende Methoden, die wir noch gar nicht kennengelernt haben, liefern dann "richtige" Werte zurück, beispielsweise die X-Koordinate, an der sich das Quadrat gerade au'ält oder die Größe des Quadrats.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 37 von 79
![Page 38: Programmierung mit BlueJ - HG13-bkalhg13-bkal.wikispaces.com/file/view/Programmierung+mit+BlueJ_Folge... · Folge 1 -BlueJ Workshop 1.1 Installation und Einrichtung von BlueJ Schritt](https://reader031.fdokument.com/reader031/viewer/2022021511/5ac092537f8b9ad73f8be2cd/html5/thumbnails/38.jpg)
BeziehungenHAT-Beziehungen werden im UML-Diagramm durch einfache Pfeile dargestellt. Und zwar geht der Pfeil von der übergeordneten Klasse aus und verweist auf die untergeordnete Klasse. Hat eine Klas-se wie Zeichnung drei oder vier Objekte einer Klasse wie Kreis, so kann man diese Zahl an den Pfeil schreiben, um dies zu verdeutlichen.
FreiheitenDie Sprache UML ist sehr komplex, man kann fast alles mögliche mit ihr darstellen. Im Abitur wird nur eine extrem kleine Teilmenge von UML von den Schüler(innen) verlangt. Wie bereits gesagt, müssen Sie in der Lage sein, einfache UML-Diagramme zu zeichnen sowie etwas komplexere UML-Diagramme zu verstehen und zu beschreiben. Beim Zeichnen von UML-Diagrammen gibt es recht viele Freiheiten. So müssen Sie nicht alle Attribute und Methoden auflisten, sondern bei größeren Klassen reicht es, wenn Sie nur die wichtigsten angeben, wobei es natürlich wieder Interpretations-sache ist, welche Methoden gerade wichtig sind. Dies kann durchaus vom Kontext abhängen, in dem das UML-Diagramm gerade benutzt wird. Es können je nach Zusammenhang also durchaus unter-schiedliche Attribute oder Methoden relevant sein. Manchmal sieht man UML-Diagramme, bei de-nen die Plus- oder Minussymbole vor den Attributen und Methoden fehlen. Auch das ist in Ord-nung. Oft sieht man Diagramme, bei denen der Datentyp der Attribute nicht angegeben ist. Auch das ist eventuell in Ordnung. Auch die Rückgabetypen von Methoden oder die Parameterlisten wer-den häufig nicht im Diagramm angegeben. Hier gibt es - so weit ich bisher recherchiert habe - auch keine einheitliche Richtlinie. Wichtig ist vor allem, dass das UML-Diagramm übersichtlich bleibt.
Ulrich Helmich: Informatik 1 mit BlueJ - Ein Kurs für die Stufe 10 / 11 - Teil 1 (3. Auflage)
Seite 38 von 79