Lernziele
Wenn Sie diesen Workshop durchgearbeitet haben, sollten Sie wissen
- Wie man ein fertiges BlueJ-Projekt öffnet,
- welche Arbeitsbereiche die Entwicklungsumgebung BlueJ hat,
- wie man sich den Java-Quelltext einer Klasse ansehen kann,
- wie man Objekte einer solchen Klasse erzeugt.
Schritt 1 - Projekt "Shapes" öffnen
⇒ Laden Sie sich bitte die ZIP-Datei Shapes.zip herunter und speichern Sie diese in einem Ordner auf einer Festplatte oder einem USB-Stick. Entpacken Sie die ZIP-Datei, meistens ist dafür nur ein Doppelklick notwendig, bei einigen Betriebssystemen entpackt sich die ZIP-Datei schon direkt nach dem Download; Sie müssen dann nur noch den Ordner "Shapes" finden.
Die entpackte ZIP-Datei Shapes.zip
Dieses Bild zeigt den Inhalt des Verzeichnisses "Shapes", das nach Entpacken der ZIP-Datei entstanden ist. Wenn Sie BlueJ auf Ihrem Rechner korrekt installiert haben (bzw. wenn Ihr Admin das richtig gemacht hat), dann sollte ein Doppelklick auf die Datei "package.bluej" das Programm BlueJ mit dem Shapes-Projekt öffnen:
Das BlueJ-Fenster mit dem Shapes-Projekt
Links in dem BlueJ-Fenster befindet sich der Befehlsbereich. Hier finden Sie unter anderem die Schaltflächen Neue Klasse und Übersetzen. Falls Ihre BlueJ-Version noch nicht auf Deutsch umgestellt wurde, heißen diese Schaltflächen New Class und Compile.
Mit dem kleinen Pfeil am unteren Rand dieses Bereichs können weitere Schaltflächen eingeblendet werden. Diese benötigen wir im Moment jedoch noch nicht.
Der mittlere Bereich ist der Arbeitsbereich. Hier sehen Sie die vier Klassen Canvas, Circle, Square und Triangle sowie eine Textdatei, in der Hinweise zu diesem Projekt gespeichert sind.
Der untere Bereich ist der Objektbereich. Er ist zurzeit noch leer. Hier erscheinen später die Objekte, mit denen wir arbeiten werden.
Schritt 2 - Übersetzen einer Klasse
⇒ Klicken Sie mit der rechten Maustaste auf den Klassenkasten Circle.
Nach einem Rechtsklick auf Circle öffnet sich ein Kontextmenü mit einigen Befehlen
Nach dem Mausklick erscheint ein Kontextmenü mit verschiedenen Befehlen. Der für uns im Augenblick wichtigste Befehl ist Übersetzen bzw. Compile, falls Ihre BlueJ-Version noch nicht auf Deutsch umgestellt wurde.
⇒ Führen Sie den Befehl Übersetzen aus und beobachten Sie, was sich im Arbeitsbereich ändert.
Vor dem Übersetzen sind die Klassenkästen schraffiert dargestellt. Nach einer erfolgreichen Übersetzung verschwindet diese Schraffur. Daran erkennen Sie, dass die Klasse fehlerfrei übersetzt wurde und nun verwendet werden kann.
Exkurs:
Quellcode übersetzen
Ein Computer versteht bekanntlich nur Maschinensprache, also Folgen von Nullen und Einsen.
Bei den ersten Computern wurden Programme tatsächlich in Maschinensprache geschrieben. Die Programme wurden damals häufig mit Hilfe von Lochkarten oder Lochstreifen in den Computer eingelesen.
Eine FORTRAN-Lochkarte
Till Niermann, CC BY-SA 3.0, via Wikimedia Commons
Heute programmiert niemand mehr auf diese Weise. Stattdessen verwendet man höhere Programmiersprachen wie Java, die für Menschen wesentlich leichter zu lesen und zu schreiben sind.
Ein Compiler ist ein Programm, das den Quelltext einer höheren Programmiersprache in Maschinensprache übersetzt. Erst dieser Maschinencode kann vom Prozessor ausgeführt werden.
Wie ein Compiler genau arbeitet und welche weiteren Schritte bei der Übersetzung eines Programms erforderlich sind, erfahren Sie später in der Qualifikationsphase (Q2).
Schritt 3 - Objekte einer Klasse erzeugen
Nach dem Übersetzen einer Klasse stehen neue Befehle zur Verfügung, zum Beispiel new Circle(). Wenn man die kompilierte Klasse (Kästchen ohne Schraffur!) mit der rechten Maustaste anklickt, öffnet sich ein neues Kontextmenü mit mehreren Befehlen:
Das neue Kontextmenü mit mehreren Befehlen
⇒ Führen Sie nun den Befehl new Circle() aus.
Es erscheint jetzt eine Dialogbox:
Hier kann man dem Objekt einen anderen Namen geben
Mit Hilfe dieser Dialogbox wird ein neues Objekt der Klasse Circle erzeugt. BlueJ schlägt dafür automatisch einen Namen vor. Dieser setzt sich aus dem Namen der Klasse und einer laufenden Nummer zusammen, hier also circle1.
⇒ Sie können diesen Namen entweder übernehmen oder einen anderen Namen vergeben, zum Beispiel sonne oder kreis. Klicken Sie anschließend auf OK.
Um zu sehen, was der Befehl new Circle() bewirkt hat, schauen wir uns noch einmal das BlueJ-Fenster an:
Das erzeugte Objekt erscheint als roter Kasten in dem unteren Arbeitsbereich von BlueJ
Im Objektbereich ist nun ein roter Kasten mit der Beschriftung circle1: Circle erschienen. Er stellt das neu erzeugte Objekt dar.
Der erste Teil der Beschriftung (circle1) ist der Name des Objekts innerhalb von BlueJ. Nach dem Doppelpunkt folgt der Name der Klasse (Circle), zu der dieses Objekt gehört. Das heißt:circle1 ist ein Objekt der Klasse Circle.
⇒ Erzeugen Sie auf die gleiche Art und Weise zwei weitere Objekte der Klasse und nennen Sie diese Objekte sonne und mond.
Nach dem Erzeugen von zwei weiteren Circle-Objekten
In der Abbildung sehen wir nun die drei Objekte circle1, sonne und mond, die alle zur Klasse Circle gehören.
Man sagt auch, diese drei Objekte sind Instanzen der Klasse Circle.
Merke:
Klassen und Objekte
Eine Klasse ist die Bauanleitung für Objekte.
Von einer Klasse können beliebig viele Objekte erzeugt werden. Jedes Objekt besitzt einen eigenen Namen und kann unabhängig von den anderen Objekten verwendet werden.
Schritt 5 - Zwei verschiedene Objekte erzeugen
Wir wollen nun das Projekt "shapes" etwas näher erforschen und dabei die wichtigsten Befehle zum Umgang mit den verschiedenen Objekten kennen lernen.
⇒ Erzeugen Sie ein Objekt sonne der Klasse Circle sowie ein Objekt haus der Klasse Square. Löschen Sie eventuell andere erzeugte Objekte durch Anklicken des Befehls Entfernen im Objekt-Kontextmenü.
Schritt 6 - Methoden ansehen
⇒ Klicken Sie mit der rechten Maustaste auf den roten Kasten, der das Objekt sonne repräsentiert.
Die Methoden des Objektes "sonne" sowie die Befehle zum Inspizieren und Entfernen des Objektes
Es erscheint ein langes Kontextmenü mit zahlreichen Einträgen. Die beiden unteren Einträge sind die allgemeinen Befehle Inspizieren und Entfernen.
Die vielen Einträge oberhalb der beiden rot hervorgehobenen Befehle des Kontextmenüs sind ebenfalls Befehle. Sie gelten jedoch nicht für beliebige Objekte, sondern nur für Objekte der Klasse Circle.
Solche objektbezogenen Befehle bezeichnet man in der objektorientierten Programmierung als Methoden.
Abiturienten aufgepasst: In den Abituraufgaben (NRW) werden Methoden auch manchmal als Aufträge bezeichnet.
Mit Hilfe von Methoden / Aufträgen kann man den Zustand eines Objekts verändern oder Informationen über das Objekt erhalten.
Schritt 7 - Objekt sichtbar machen
⇒ Klicken Sie mit der rechten Maustaste auf das Objekt sonne und rufen Sie die Methode makeVisible() auf.
Die Methode "makeVisible()" des Objektes "sonne" wurde ausgeführt
Es erscheint ein quadratisches Fenster mit einer Größe von 300 x 300 Pixeln und einem weißem Hintergrund. In diesem Fenster wird ein kleiner blauer Kreis angezeigt. Das soll unsere Sonne sein.
Sie haben durch den Aufruf der Methode makeVisible() den Zustand des Objekts sonne verändert. Vorher war das Objekt unsichtbar, jetzt wird es im Zeichenfenster angezeigt. Das Objekt befindet sich also in einem neuen Zustand.
Workshop 2: Wir zeichnen ein Haus
Das ist die direkte Fortsetzung des ersten Workshops. Wir machen uns mit den Methoden der Graphik-Objekte Kreis, Quadrat und Dreieck vertraut und zeichnen dann ein Haus aus diesen Objekten.
Seitenanfang -
Weiter mit dem Workshop 1.2 - Wir malen ein Haus...