Folge 1: Wir lernen das Programm kennen

Buch-Version

Die Folgen 1 bis 10 gibt es jetzt auch als Buch-Version. Noch nicht gedruckt, aber in Form von fünf PDF-Dateien. Die Buch-Version sieht besser aus, kann vor allem besser gedruckt werden - ach was, viel besser - und enthält Themen, die ich aus Zeitgründen im regulären Kurs nicht behandeln kann, zum Beispiel das komplette Kapitel 6 sowie einige Exkurse.

Vorbemerkungen

Ich gehe davon aus, dass Sie das Programm BlueJ auf Ihrem Rechner installiert haben. Zur Original BlueJ-Seite kommen Sie, wenn Sie dem Link www.bluej.org folgen.
Ich lehne mich in meinem Lehrgang sehr stark an die erste Auflage des hervorragende Buchs "Objects first with Java" von David. J. BARNES und Michael KÖLLING an, welches 2003 auch in deutscher Übersetzung erschienen ist: "Objektorientierte Programmierung mit Java" (ISBN 3-8273-7073-6, 35 €). Inzwischen ist der Verlag bei der dritten Auflage angekommen, die deutsche Übersetzung der dritten Auflage heißt jetzt "Java lernen mit BlueJ", ist im März 2006 erschienen und kostet 39,95 € (ISBN 3-8273-7152-X).

1 Das diesem Kurs zu Grunde liegende Buch, 1. Auflage und 3. Auflage

Für Lehrer und Lehrerinnen interessant: Objektorientierte Programmierung im Unterricht

Vorbereitungen

1.

Wenn Sie erfolgreich an diesem Kurs mitarbeiten wollen, benötigen Sie erstens eine lauffähige Version von BlueJ. Wenn Sie BlueJ herunter geladen und entpackt haben, sehen Sie unter anderem einen Ordner "examples". Dieser Ordner enthält einige interessante Beispiel, mit deren Hilfe Sie sich mit BlueJ und Java vertraut machen können.

2.

Bevor Sie BlueJ benutzen können, müssen Sie die Java-Runtime-Umgebung bzw. das Software Developement Kit (SDK) von Sun herunterladen und installieren, wenn Sie einen Windows-Rechner haben. Bei einem Apple-Rechner unter MacOS 10.4 (Tiger) können Sie BlueJ direkt einsetzen, da Java zum Betriebssystem gehört.

3.

Drittens benötigen Sie ausreichend freien Speicherplatz auf einem Laufwerk, auf das Sie Schreibzugriff haben. BlueJ hat Schwierigkeiten beim Kompilieren, wenn der Speicherplatz zu knapp wird.

Zusatzbemerkungen für Schüler(innen) des Söderblom-Gymnasiums:

Auf den Rechnern unserer Schule finden Sie den BlueJ-Ordner unter C:/Programme. Im Idealfall ist aber auch im Startmenü ein entsprechender Eintrag vorhanden. Besser ist es, sich eine Verknüpfung zu BlueJ.exe auf den persönlichen Desktop zu legen.

Die Java-Runtime-Umgebung ist zwar bereits installiert, beim ersten BlueJ-Start müssen Sie BlueJ aber mitteilen, wo sich diese Umgebung befindet.

Die deutschsprachigen Projektdateien finden Sie auf dem Tauschplatz in dem Ordner Projekte. Kopieren Sie sich diesen Ordner bitte auf Ihr Laufwerk Z: oder noch besser auf Ihren USB-Stick.

Sorgen Sie dafür, dass Z: nicht allzu stark durch andere Dateien belegt ist. BlueJ braucht zum Kompilieren wirklich recht viel freien Speicherplatz. Bedenken Sie, dass Sie insgesamt nur 30 MB bis 50 MB zur Verfügung haben.

Nachtrag August 2008:
Bei den heutigen Preisen für USB-Sticks sollten Sie sich wirklich die Anschaffung eines solchen überlegen, Sie haben dann für wenig Geld 1 GB oder mehr Speicherplatz zur Verfügung.

1. Das BlueJ-Fenster

Starten Sie BlueJ und laden Sie das Projekt "Figuren" bzw. "shapes".

2 Das BlueJ-Fenster

Betrachten Sie zunächst das BlueJ-Fenster (Abb. 2). Das Fenster gliedert sich in drei Teilbereiche. Links sehen Sie einen grau unterlegten schmalen Bereich mit einigen Buttons. Mit diesen Buttons steuern Sie die wesentlichen Programmfunktionen. In der Mitte finden Sie den Hauptarbeitsbereich des Fensters, in dem die Klassen Ihres Projektes dargestellt werden. Der untere Bereich schließlich dient zur Aufnahme von verschiedenen Objekten.

Im Hauptarbeitsbereich kann man vier Klassen erkennen: Leinwand, Kreis, Quadrat und Dreieck.

Das erste Arbeitsblatt zu diesem Lehrgang können Sie sich hier als PDF-Dokument herunterladen. Es fasst die wichtigsten Schritte und Fachbegriffe zusammen.

2. Klassen und Objekte

Klicken Sie mit der rechten Maustaste auf die Klasse Quadrat. Ein so genanntes Kontextmenü öffnet sich, das Ihnen die Methode "new Square()" und mehrere Befehle zur Auswahl stellt:

3 Das Kontextmenü einer Klasse (englische Version)

Falls die Methode "new Square()" bzw. "neues Quadrat()" im Kontextmenü nicht vorhanden ist, so müssen Sie die Klasse Square bzw. Quadrat erst kompilieren. Rufen Sie dazu den Befehl Kompilieren (engl. Version: compile) auf. Durch das Kompilieren wird der Java-Quelltext der Klasse Quadrat jetzt in so genannten Java-Code übersetzt.

Wenn Sie mit den Begriffen "Quelltext", "Kompilieren" und "Java-Code" noch gar nichts anfangen können, lesen Sie zunächst die Seite für Programmier-Einsteiger: "Programme und Programmiersprachen".

Kompilieren ist das Übersetzen von einem Quelltext in ein ausführbares Programm.

Nähere Einzelheiten auf der Seite für Programmier-Einsteiger: "Programme und Programmiersprachen".

Wenn der Übersetzungsvorgang erfolgreich abgeschlossen wurde, können Sie mit der rechten Maustaste die Methode neues Quadrat() aufrufen. Wenn Sie die englische Version von BlueJ verwenden , heißt die entsprechende Methode new square(). Ich werde mich im Folgenden immer auf die deutsche Version beziehen. Wie Sie selbst BlueJ auf die deutsche Sprache umstellen können, erfahren Sie in dem Exkurs (rechts).

Mit der Methode neues Quadrat() erzeugen Sie ein Objekt der Klasse Quadrat. Diesem Objekt müssen Sie einen Namen geben, z.B. "kasten" oder "haus".

Während die Bezeichner von Klassen immer mit Großbuchstaben beginnen, fangen die Bezeichner von Objekten stets mit Kleinbuchstaben an.

Dies ist kein direkter Zwang, sondern eher eine Konvention, an die sich aber alle Java-Programmierer weitgehend halten.

Erzeugen Sie jetzt ein zweites Objekt: Diesmal klicken Sie auf die Klasse Kreis und erzeugen ein Objekte namens "sonne".

4 Vier Klassen und ein Objekt "kasten" der Klasse "Quadrat"

Bezeichner von Klassen: Fangen mit Großbuchstaben an.

Bezeichner von Objekten: Fangen mit Kleinbuchstaben an.



Zwischenüberlegung

Von Word her kennen Sie bestimmt Formatvorlagen, von denen Sie beliebig viele Dokumente herstellen können. In einer objektorientierten Programmiersprache wie Java verhalten sich Klassen und Objekte so ähnlich wie Formatvorlagen und Dokumente in einer Textverarbeitung. Während Sie bei Word aus einer Formatvorlage wie z.B. "ausgefallener Brief" beliebig viele konkrete Dokumente erzeugen können, so können Sie aus einer Klasse wie Quadrat beliebig viele Objekte erzeugen (zur Vertiefung siehe auch Theorieteil "Klassen und Objekte"). In BlueJ werden diese Objekte in dem unteren Bereich des Programmfensters angezeigt.

Praktische Übung:

Erzeugen Sie von jeder der Klassen Kreis, Quadrat und Dreieck mindestens ein Objekt. Denken Sie daran: Die Namen von Objekten sollten immer mit einem Kleinbuchstaben anfangen.

5 Vier Klassen und vier Objekte

Hier wurde zum Beispiel ein Objekt kasten der Klasse Quadrat, zwei Objekte sonne und mond der Klasse Kreis und ein Objekt pyramide der Klasse Dreieck erzeugt.

Klassen und Objekte verhalten sich zueinander so ähnlich wie Formatvorlagen und Dokumente bei einer Textverarbeitung.

Aus einer Klasse kann man beliebig viele Objekte herstellen; und jedes Objekt muss einer Klasse angehören.




Mehr zu diesem Thema erfahren Sie im Theorieteil

Klassen und Objekte

3. Methoden

Was kann man jetzt eigentlich mit den erzeugten Objekten wie kasten und sonne machen? Klicken Sie mit der rechten Maustaste auf eines der beiden Objekte.

6 Kontextmenü des Objektes sonne

Es erscheint ein recht langes Kontextmenü mit vielen Methoden und den beiden Befehlen "Inspect" und "Remove".

Methoden dienen zum Manipulieren von Objekten. Schauen Sie einmal genau hin, welche Methoden einem Kreis-Objekt zur Verfügung stehen.

Mit der Methode farbeAendern() kann man z.B. die Farbe eines Kreises ändern, mit der Methode groesseAendern() kann die Größe verändert werden und so weiter (siehe Abb. 6).

Mit Hilfe von Methoden kann man also ein Objekt verändern. Genauer gesagt, man kann den Zustand eines Objektes ändern. Den wichtigen Begriff Zustand werde ich im Theorieteil zu dieser ersten Folge noch näher erläutern.

Methoden definieren, was man mit einem Objekt alles machen kann.

Man sagt auch: Mit Methoden kann man den Zustand eines Objektes verändern.

4. Verändern der Objekte

Klicken Sie jetzt bitte mit der rechten Maustaste auf das Kreis-Objekt sonne und rufen Sie aus dem Kontextmenü die Methode sichtbarMachen() auf. Es erscheint ein neues Fenster mit weißem Hintergrund und einem blauen Kreis (Abb.7). Sie haben durch den Aufruf der Methode sichtbarMachen() den Zustand des Objektes sonne verändert: Vorher war das Objekt nicht sichtbar, jetzt ist es in dem Fenster zu sehen. Methoden wie sichtbarMachen(), die den Zustand eines Objektes verändern, heißen verändernde Methoden oder manipulierende Methoden.

Wie jedermann weiß, ist unsere Sonne groß und gelb und nicht klein und blau. Sie sollen jetzt aus diesem "blauen Zwerg" eine normale gelbe Sonne machen. Dazu müssen Sie weitere verändernde Methoden aufrufen.

7 Ergebnis der Methode sichtbarMachen()

Verändernde Methoden verändern den Zustand eines Objektes.

Aus einem blauen Kreis wird z.B. ein gelber Kreis, wenn man die Methode farbeAendern() aufruft.

4.1 Farbe verändern

8 So kann man mit BlueJ bequem Parameter eingeben

Es braucht nicht viel Überlegung, welche der vielen Methoden der Kreis-Objekte wohl benötigt wird, um die Farbe des Kreises zu ändern. Richtig geraten; die Methode heißt farbeAendern(). Wenn Sie diese Methode jetzt aufrufen, passiert etwas Neues, und zwar erscheint ein Dialogfenster mit dem Titel "BlueJ: Methodenaufruf" (Abb. 8). Im oberen Teil des Fensters werden Sie ausführlich über die Bedeutung der Methode aufgeklärt. Im unteren Teil des Fensters müssen Sie die neue Farbe des Kreises eintippen. Wichtig ist, dass Sie die neue Farbe in Anführungszeichen setzen. Also nicht einfach gelb eingeben, sondern "gelb".

Können Sie den Unterschied zwischen den beiden Methoden sichtbarMachen() und farbeAendern() mit wenigen Worten zusammenfassen? Die erste Methode konnte einfach so aufgerufen werden. Es waren keine weiteren Angaben notwendig. Der Aufruf der Methode machte den vorher unsichtbaren Kreis sichtbar. Die zweite Methode kann nicht einfach so aufgerufen werden. Wenn Sie die Farbe eines Kreises ändern wollen, so müssen sie genau angeben, welche Farbe der Kreis denn jetzt haben soll. Die Methode benötigt eine zusätzliche Information. In der Mathematik würde man hier von einem Argument sprechen, in der Informatik bezeichnet man solche zusätzlichen Informationen, die Methoden benötigen, als Parameter. Die Methode farbeAendern() 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.


Parameter sind zusätzliche Informationen, die eine Methode zum Funktionieren benötigt.



Parameter

4.2 Größe verändern

Sie können sich bestimmt schon denken, wie die Größe der Sonne verändert werden kann. Richtig: Sie müssen die Methode groesseAendern() aufrufen. Auch diese Methode benötigt einen Parameter, nämlich die neue Größe, die der Kreis haben soll. Im Gegensatz zu farbeAendern() dürfen Sie jetzt keine Zeichenkette in das Textfeld des Dialogfensters eintippen, sondern es wird ein Zahlenwert erwartet. Tippen Sie jetzt die Zahl 100 ein - ohne Anführungszeichen wohlgemerkt.

Haben Sie es bemerkt? Es gibt in Java unterschiedliche Typen von Parametern. Bei farbeAendern() mussten Sie einen Text in Anführungszeichen eintippen - einen so genannten String (deutsch: Zeichenkette). Bei groesseAendern() dagegen mussten Sie eine ganze Zahl eingeben.

9 Eine Sonne erscheint

Jetzt hat der Kreis nicht nur eine andere Farbe, sondern ist auch größer geworden. Durch den Aufruf der Methode farbeAendern() haben Sie das Attribut farbe des Objektes kreis1 verändert. Vorher hatte das Attribut farbe den Attributwert "blau", jetzt hat es den Attributwert "gelb". Durch den Aufruf der Methode groesseAendern() wurde entsprechend der Attributwert des Attributes durchmesser geändert.

Verändernde Methoden heißen deswegen so, weil sie mindestens einen Attributwert des Objektes verändern.

4.3 Position verändern

Als letzte Übung in diesem Schritt 4 sollen Sie die Position der Sonne verändern, so dass sie ungefähr die Position hat wie in Abbildung 9. Dazu eignen sich die Methoden nachRechtsBewegen() und nachUntenBewegen() hervorragend.

Verändernde Methoden verändern die Werte von Attributen.

5. Ein tolles Bild zeichnen

Kontrollieren 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 sichtbarMachen() auf. Ihr "Gemälde" sollte dann ungefähr so aussehen wie in Abbildung 10, falls Sie den Kreis sonne bereits wie oben besprochen verändert haben. Wenn nicht, sehen Sie nur einen blauen Kreis, der in Wirklichkeit aber aus zwei Kreisen sonne und mond besteht, die jedoch die gleichen Koordinaten haben.

10 Vier Objekte werden angezeigt

Übung 1.1 - Malen Sie ein Bild

Versuchen Sie durch geschickten Aufruf verschiedener Methoden folgendes Bild zu erzeugen:

11 Dieses Bild soll angezeigt werden

In Hinblick auf die nächste Übung (Folge 2) wird Ihnen dringend empfohlen, dass Sie sich genau aufschreiben, welche Methoden Sie in welcher Reihenfolge mit welchen Parametern aufrufen.

Bevor Sie nun mit der Folge 2 weitermachen, müssen Sie den zur Folge 1 gehörigen Theorieteil Klassen und Objekte durcharbeiten.

Klassen und Objekte





Weiter mit dem Theorieteil: Klassen und Objekte

Diese HTML-Seite wurde erstellt von Ulrich Helmich am 23. Januar 2005.
Zuletzt bearbeitet am 14. August 2006.

Sie sind Besucher Nr. seit dem Erreichen der 10-Millionen-Marke am 21.01.2010