Einführung in Java mit

von StD Hermann Josef Fels, Gymnasium St. Wolfhelm, Schwalmtal

Zur Einführung in die Programmiersprache Java ist die Programmierumgebung BlueJ hervorragend geeignet. Sie wurde von Michael Kölling an der Monash Universität, Australien, entwickelt.

David J. Barnes und Michael Kölling stellen in ihrem Buch
Objektorientierte Programmierung mit Java,
Eine praxisnahe Einführung mit BlueJ, PEARSON Studium,
ISBN 3-8273-7073-6
diese Entwicklungsumgebung vor. In kleinen vorgegebenen Projekten, die erweitert werden müssen, arbeitet der Leser direkt mit Objekten.

Die Entwicklungsumgebung setzt das SDK-Software Development Kit und die API Dokumentation voraus. Nach Installation des Development-Kits kann dann die Entwicklungsumgebung BlueJ kostenlos auf den Rechner geladen und installiert werden.

Im Verzeichnis ..Programme\BlueJ\lib befinden sich Dateien mit der Endung ".defs", die das Verhalten von BlueJ beeinflussen. Jede Zeile, die mit "#" beginnt, ist unwirksam. Entfernt man das "#" vor einer Zeile, so wird diese wirksam und die deutsche Version wird eingestellt. Ferner wird unter Werkzeuge>Einstellungen der Pfad zur lokalen API-Dokumentation eingetragen. Im BlueJ-Fenster wählt man Werkzeuge>Einstellungen und ersetzt den Link auf die lokale Dokumentation, z.B. file:///C:/Programme/Java/j2sdk1.4.0_01/api/

Die Programmierumgebung BlueJ

Ein einfaches Beipiel soll einen ersten Einblick über die Einsatzmöglichkeiten der Entwicklungsumgebung geben. Wir erzeugen in einem Projekt person eine Klasse Person, die durch die Attribute name und alter gekennzeichnet werden soll. Die Klasse wird durch ein vereinfachtes UML-Klassensybol dargestellt. Durch Doppelklick auf das Klassensymbol gelangt man in den Editor und der Quelltext der Klasse Person wird eingegeben.

class Person { private String name; private int alter; public Person( String einName) { name = einName; } public void setAlter(int lebensjahre) { alter = lebensjahre; } public String getName() { return name; } public int getAlter() { return alter; } }
Der Editor in BlueJ

Der compilierte Quelltext wird auch automatisch gespeichert. Sind Syntaxfehler vorhanden werden Fehlerhinweise angezeigt. Nach erfolgreicher Übersetzung kann man mit Rechtsklick aus dem Kontextmenü den Konstruktor der Klasse Person aufrufen und ein Objekt erzeugen.

Objekterzeugung

Der Name des Objektes kann geändert oder übernommen werden. Der Wert des Parameters einName wird mit Anführungszeichen eingegeben. Die Objekte werden auf der Objektbank abgelegt.

Objekte auf der Objektbank

Das Kontextmenü eines Objektes enthält die Möglichkeiten
  • die Vererbungshierarchie einzusehen,
  • die Methoden des Objektes aufzurufen,
  • die Attribute des Objektes zu untersuchen und
  • das Objekt zu löschen.
Kontextmenü eines Objektes

 

Aufruf "geerbt von Objekt:" Vererbung

 

Aufruf der Methode getName des Objektes "gosling": Methodenaufruf

 

Aufruf des Inspektors für das Objekt "gosling": Inspektor

 

Die Klasse Person wird über den Knopf Implementierung/Interface des Editors dokumentiert.

Dokumentation der Klasse Person

Zur Untersuchung von Programmabläufen dient der Debugger, der nach dem Setzen eines Breakpoints im Quelltext bei einem Methodenaufruf auf der Benutzeroberfläche erscheint.

Der Debugger

Das folgende Diagramm zeigt eine komplexere Abhängigkeit der Klassen Person, LehrerIn, SchülerIn und Adresse. Dabei verwendet die Klasse Person die Klasse Adresse. Die Klassen SchülerIN und LehrerIn sind von der Klasse Person abgeleitet. Entsprechend sind auch die Diagrammpfeile zwischen den Klassen.

Komplexe Zusammenhänge

Die entsprechenden Quelltexte der einzelnen Klassen lauten:

public class Person { private String name; private int alter; private Adresse adresse; public Person(String einName, Adresse eineAdresse) { name = einName; adresse = eineAdresse; } public void setAlter(int lebensjahre) { alter = lebensjahre; } public String getName() { return name; } public int getAlter() { return alter; } } public class Adresse { private String strasse; private int plz; private String ort; public Adresse (String strasse, int plz, String ort){ this.strasse = strasse; this.plz = plz; this.ort = ort; } public String getAdresse(){ String adr; adr = strasse +"\n" + plz + " " + ort; return adr; } }
public class LehrerIn extends Person { private String titel; public LehrerIn (String einName, Adresse eineAdresse, String einTitel) { super(einName, eineAdresse); titel = einTitel; } public String getTitel() { return titel; } } public class SchülerIn extends Person { private String id; public SchülerIn (String einName, Adresse eineAdresse, String eineId) { super(einName, eineAdresse); id = eineId; } public String getId() { return id; } }

Nach der Objekterzeugung von Adressen, Schüler und einem Lehrer kann man die Objekte untersuchen und die vorhandenen Methoden aufrufen.

Inpektoren

Im Buch

Objects First with Java, A Practical Introduction using BlueJ
werden anhand von kleinen Projekten in dreizehn Kapiteln wichtige Elemente der Sprache Java exemplarisch dargestellt. Die Projekte sind so angelegt, dass der Leser kleine Modelle aus dem Alltag vorfindet. Er kann ihr Verhalten und ihre Eigenschaften sowie den Quelltext analysieren und dann in Übungen ergänzen.

Prof. H. Peter Gumm, Marburg, verwendet in seiner Vorlesung Informatik I ebenfalls die Entwicklungsumgebung BlueJ. Einige Projekte der Vorlesung erhält man mit dem Download von BlueJ, andere Projekte der Marburger Vorlesungen enthalten Listen und Bäume. Sie sind weitere Beispiele dafür, wie elegant sich diese Strukturen mit BlueJ untersuchen lasssen.

Hermann Josef Fels, Gymnasium St. Wolfhelm, 05.03.2003