Lernziele
Wenn Sie den zweiten Teil des Workshops durchgearbeitet haben, sollten Sie wissen
- Wie man ein Java-Objekt mit dem Objektinspektor untersucht,
- was man unter Attributen versteht,
- was manipulierende Methoden sind,
- warum manche Methoden Parameter besitzen und was ein Parameter ist,
- was man unter Datentypen versteht,
- welches die wichtigsten Datentypen sind.
Schritt 8 - Attribute
⇒ Klicken Sie mit der rechten Maustaste auf den roten Kasten, der das Objekt sonne repräsentiert. Wählen Sie anschließend im Kontextmenü den Befehl Inspizieren.
Es erscheint nun der Objektinspektor:
BlueJ nach dem Aufrufen des Befehls "Inspizieren"
Im Objektinspektor werden die Eigenschaften des Objekts sonne angezeigt: diameter, xPosition, yPosition, color und isVisible.
Solche Eigenschaften eines Objekts bezeichnet man in der objektorientierten Programmierung als Attribute.
Jedes Attribut besitzt einen Wert, den sogenannten Attributwert. Das Attribut diameter hat beispielsweise den Wert 30, xPosition den Wert 20, yPosition den Wert 60, color den Wert "blue" und isVisible den Wert true.
Was bedeuten diese Werte jetzt genau?
Das Attribut diameter legt den Durchmesser des Kreises fest. Die Zahlenwerte sind immer Pixelwerte. Das Objekt sonne hat also einen Durchmesser von 30 Pixeln. Das ist nicht viel. Ein moderner Bildschirm kann 1920 oder mehr Pixel nebeneinander darstellen, und das weiße Fenster, in dem der Kreis angezeigt wird, hat eine Breite von 300 Pixeln.
Die Attribute xPosition und yPosition bestimmen die Position des Kreises in diesem Fenster. Der Kreis ist 20 Pixel vom linken Fensterrand und 60 Pixel vom oberen Fensterrand entfernt.
Das Attribut color bestimmt die Farbe des Kreises. Der aktuelle Attributwert des Kreises sonne ist "blue". Das müssen wir gleich noch unbedingt ändern, denn bekanntlich ist unsere Sonne ja gelb.
Das Attribut isVisible besitzt den Wert true, weil der Kreis sichtbar ist. Vor dem Aufruf der Methode makeVisible() hatte dieses Attribut dagegen den Wert false. Durch den Methodenaufruf wurde also der Zustand des Objekts verändert.
Merke:
Attribute eines Objekts
Jedes Objekt besitzt Attribute. Die Gesamtheit aller Attribute beschreibt den Zustand des Objekts. Durch Methoden wie makeVisible() kann man diesen Zustand verändern.
Schritt 9 - manipulierende Methoden
Wie jedermann weiß, ist unsere Sonne groß und gelb und nicht klein und blau. Wir wollen jetzt aus dem "blauen Zwerg" eine normale gelbe Sonne machen.
⇒ Klicken Sie mit der rechten Maustaste auf das Objekt sonne und rufen Sie die Methode changeColor(…) auf.
Es erscheint ein Dialogfenster mit einem Textfeld und zwei Schaltflächen. In das Textfeld müssen Sie den Namen der gewünschten Farbe eingeben. Wichtig ist, dass die Farbe als Zeichenkette in doppelten Anführungszeichen eingegeben wird.
Hier kann die Farbe des Kreises geändert werden. Allerdings können nur ganz bestimmte Werte eingesetzt werden.
⇒ Geben Sie die Zeichenkette "yellow" ein und klicken Sie dann auf den OK-Button.
Der Kreis wird sofort gelb dargestellt. Die Methode changeColor(…) hat also den Zustand des Objekts sonne verändert.
Exkurs: Manipulierende Methoden
Sie haben bisher zwei Methoden der Klasse Circle kennengelernt: makeVisible() und changeColor(). Beide sind manipulierende Methoden. Solche Methoden verändern den Wert eines oder mehrerer Attribute und damit den Zustand eines Objekts.
Die Methode makeVisible()verändert das Attribut isVisible. Vor dem Aufruf von makeVisible() hat dieses Attribut den Wert false, das Objekt ist also nicht sichtbar. Nach dem Aufruf von makeVisible() hat das Attribut dagegen den Wert true, also ist das Objekt sichtbar.
Ähnlich ist es bei changeColor(). Vor dem Aufruf dieser Methode hat das Attribut color den Wert "blue". Wenn wir die Methode changeColor() aufrufen und als neue Farbe "yellow" angeben, hat das Attribut color anschließend den Wert "yellow".
Merke:
Manipulierende Methode
Eine manipulierende Methode verändert den Wert eines oder mehrerer Attribute und damit den Zustand eines Objekts.
Mehr zu manipulierenden Methoden finden Sie im Informatik-Lexikon auf dieser Homepage.
Können Sie den grundsätzlichen Unterschied zwischen den beiden Methoden makeVisible() und changeColor() mit wenigen Worten beschreiben?
Die Methode makeVisible() kann einfach aufgerufen werden. Weitere Angaben sind nicht erforderlich. Sie macht einen vorher unsichtbaren Kreis sichtbar, indem sie den Wert des Attributs isVisible von false auf true setzt.
Bei der Methode changeColor() ist das anders. Soll die Farbe eines Kreises geändert werden, muss zusätzlich angegeben werden, welche Farbe der Kreis erhalten soll. Die Methode benötigt also eine zusätzliche Information.
Eine solche Information bezeichnet man in der Informatik als
Parameter.
Merke:
Parameter
Ein Parameter ist eine Information, die einer Methode beim Aufruf übergeben wird. Die Methode kann diese Information auswerten, um eine bestimmte Aufgabe auszuführen.
⇒ Erzeugen Sie ein Objekt der Klasse Triangle und rufen Sie dann die Methode changeSize() auf. Erläutern Sie, welchem Zweck die beiden Parameter dienen.
Mehr zum Thema Parameter finden Sie im Informatik-Lexikon auf dieser Homepage.
Schritt 10 - Datentypen
Sie 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ämlich die neue Größe des Kreises.
Im Gegensatz zu changeColor() dürfen Sie jetzt aber keine Zeichenkette wie "yellow" in das Textfeld des Dialogfensters eingeben. Hier wird ein anderer Datentyp erwartet, nämlich eine ganze Zahl.
⇒ Geben Sie jetzt die Zahl 100 ein - ohne Anführungszeichen.
Haben Sie es bemerkt? Es gibt in Java unterschiedliche Datentypen. Bei changeColor() müssen Sie eine Zeichenkette (String) angeben. Bei changeSize() wird dagegen eine ganze Zahl (int) erwartet. Bei jedem Parameter muss daher genau beachtet werden, welchen Datentyp die Methode erwartet.
Merke:
Datentyp
Der Datentyp legt fest, welche Werte in einer Variablen, einem Parameter oder einem Attribut gespeichert werden können.
Jetzt hat der Kreis nicht nur eine andere Farbe, sondern ist auch größer geworden.
Durch den Aufruf der Methode changeColor() haben Sie das Attribut color des Objektes sonne verändert. Vor dem Aufruf dieser Methode hatte das Attribut den Wert "blue", jetzt hat es den Wert "yellow".
Durch den Aufruf der Methode changeSize() wurde entsprechend der Wert des Attributes diameter verändert. Vor dem Aufruf der manipulierenden Methode hatte diameter den Wert 50, nach Aufruf von changeSize(100) hat diameter den Wert 100.
Weitere Informationen zum Thema "Datentypen" finden Sie in dem Lexikon-Artikel "Datentypen". Lesen Sie sich diesen Artikel bitte gründlich durch.
Aufgabe
Erzeugen Sie in Ihrem BlueJ-Projekt folgende Objekte:
- sonne : Circle
- mond: Circle
- haus: Square
- dach: Triangle
Bearbeiten Sie die vier Objekte dann mit den zur Verfügung stehenden Methoden, so dass Sie am Ende ein Bild erzeugt haben, dass ungefähr so aussieht wie der rechte Screenshot in der folgende Abbildung:
Links sehen wir einen Screenshot direkt nach der Erzeugung der vier Objekte.
Seitenanfang -
Weiter mit "Klassen und Objekte"...