Sie sind auf Seite 1von 10

Martin Hitz | ESOP 2018 Version 02.03.

18 42
Martin Hitz | ESOP 2018 Version 02.03.18 43
Zur Geschichte von Java [Rainer Dumke, Universität Magdeburg]:
1990 wird bei Sun öffentlich per E-Mail über die Ziele der Firma diskutiert, Wortführer
James Gosling („Vater“ des Editors Emacs) darf eine Projektgruppe gründen (Patrick
Naughton, Mike Sheridan, James Gosling). Man sucht nach einer Programmiersprache für
eingebettete Systeme. Sie soll objektorientiert, robust, sicher und leicht zu erlernen sein.
Der Prototyp erhält den Namen : Oak – die Eiche (ein Baum vor Goslings Büro).
1992 wurde ein Gerät zum Bedienen eines Fernsehgerätes entwickelt; kleiner,
gezeichneter Wicht namens Duke (später Maskottchen von Java) führt Benutzer durch ein
virtuelles Haus, kann im Wohnzimmer Fernsehzeitschrift aufheben, in dieser einen Film
auswählen, auf den virtuellen Videorecorder schieben, und damit ist der Videorecorder zur
Aufnahme des jeweiligen Filmes programmiert.
Die Firma „First Person“ wird gegründet. Ziel ist es, interaktives Fernsehen mit der
Programmiersprache Oak zu implementieren.
SUN erhält jedoch nicht den Auftrag (verliert die Ausschreibung an Silicon Graphics).
Das Experiment „Interaktives Fernsehen“ wird ein finanzieller Verlust.
1993 wird der erste Browser (Mosaic) für das WWW fertig gestellt.
Neue Aufgabe für First Person: Oak soll plattformunabhängige Grundlage einer neuen
Anwendung für das Internet sein.
Im Januar 1995 wird Oak in Java umbenannt (da „Oak“ schon für eine andere
Programmiersprache vergeben ist). Java bekommt seinen Namen nach einem T-Shirt-
Aufdruck: „It's a jungle out there, so drink your Java“. In den USA wird das Wort Java mit
Kaffee gleichgesetzt.

Martin Hitz | ESOP 2018 Version 02.03.18 43


Die Zylinder in dieser Grafik stellen
Daten auf Massenspeicher dar. Links
oben der Java Source Code (Quellcode),
der in einem Texterfassungsprogramm
(Editor) erfasst wurde und vom Java-
Compiler in den Java Object Code (oder
Bytecode) übersetzt wird und schließlich
von der so genannten Java Virtual
Machine, dem Interpreter-System, auf
der jeweiligen Hardware ausgeführt
wird.

Martin Hitz | ESOP 2018 Version 02.03.18 45


Das Beispielprogramm berechnet die Danach folgt das eigentliche Programm.
Fläche eines Kreises, der durch seinen Java hat die Eigenheit, dass jedes
Radius gegeben ist. Die Fläche soll auf Programm eine sogenannte Klasse
dem Bildschirm (der „Systemkonsole“) darstellt – worum es sich dabei im Detail
ausgegeben werden. handelt lernen wir später noch (vorläufig
müssen Sie die in grauer Schrift
Das Programm beginnt in diesem Fall
gehaltenen Programmteile als
mit einem beschreibenden Text, einem so
„naturgegeben” hinnehmen).
genannten Kommentar. Die
entsprechenden Zeilen werden mit zwei Weiters hat jedes Programm einen
Schrägstrichen eingeleitet; jedes Zeichen sogenannten Startpunkt, das ist jener Teil
danach (bis zum Ende der Zeile) wird der aufgerufen wird, wenn Sie das
vom Compiler ignoriert. Programm starten (auch dies wird erst
Weiters folgen einige Leerzeilen, die später klar werden). Dieser heißt main
auch keinerlei Bedeutung haben in einem und wird definiert durch das
Java-Programm: Mindestens ein „White Programmstück zwischen dem
Space“-Zeichen (Leerzeilen, Abstände, Schlüsselwort public und der öffnenden
Tabulatoren) ist zwischen zwei Java- geschweiften Klammer (hier grün
Worten notwendig, es können aber auch markiert).
beliebig viele sein. Damit versuchen wir, Die eigentliche kreative Arbeit beginnt
dem Programm auch eine optisch klare hinter dieser Klammer.
Struktur zu geben.

Martin Hitz | ESOP 2018 Version 02.03.18 46


Hier wird gezeigt, wie man ein Java- Fall .class nicht angegeben werden muss,
Programm ohne Entwicklungsumgebung es genügt java Kreisfläche. Die Java
wie Eclipse entwickelt, indem z.B. vi (ein Virtual Machine sucht dann eine Datei,
Texteditor, also ein Textbearbeitungs- die Kreisfläche.class heißt und führt sie
programm) aufgerufen wird, mit dem wir aus. Der einzige sichtbare Effekt ist die
das Java-Programm unter dem Namen Ausgabe, die vom Befehl
Kreisfläche.java (muss gleich heißen wie System.out.println erzeugt wird: Sie
die Klasse, plus dem Suffix .java) sehen, die Fläche des Kreises mit Radius
erfassen. Damit haben wir das Programm 12,3 ist also 475,2911511. Die Zahl
auf dem Massenspeicher abgelegt und enthält dann noch einige Nullen und als
können es nun übersetzen. Dies letzte Ziffer eine 4 (oben abgeschnitten).
funktioniert durch Aufruf des Java- Dies liegt daran, dass die Arithmetik mit
Compilers javac. Als Argument für diesen Gleitpunktzahlen ungenau ist. Würde man
Programmaufruf geben wir den Namen die Rechnung mit der Hand durchführen,
jenes Programms an, das wir übersetzen müsste dieser Dezimalbruch abbrechen,
wollen (Kreisfläche.java). Daraus wird aber im Computer ergibt sich ein kleiner
jetzt ein maschinennäheres Programm Fehler. Gleitpunktzahlen liefern selten
(Bytecode) erzeugt, wenngleich noch kein ganz exakte Ergebnisse.
Maschinenprogramm. Dieses Ergebnis
findet sich auf der Festplatte unter der
Datei Kreisfläche.class. Nun rufen wir
den Java-Interpreter (java) auf und geben
den Programmnamen an, wobei in diesem

Martin Hitz | ESOP 2018 Version 02.03.18 48


Die grauen Textteile sind bis auf
Weiteres genau so in die eigenen
Programme zu übernehmen, wobei die
rot umrandeten Bereiche jeweils passend
ergänzt werden müssen.
Die Bedeutung der grauen Texte wird
später an geeigneter Stelle erläutert
werden.

Martin Hitz | ESOP 2018 Version 02.03.18 49


in.nextDouble() liefert (innerhalb eines
arithmetischen Ausdrucks) die nächste
über die Tastatur eingegebene Zahl (ggfs.
mit Nachkommastellen, je nach
Konfiguration mit Komma (,) oder Punkt
(.) einzugeben). Damit dies möglich ist,
muss als erste Zeile
import java.util.Scanner;
angegeben werden (wird später näher
erklärt) und vor (oder auch nach)
public static void main (String[] args) {
als Vorbereitung die Zeile
static Scanner in = new
Scanner(System.in);
eingefügt werden (Erklärung folgt
wiederum später).

Martin Hitz | ESOP 2018 Version 02.03.18 50


Die nachstehenden Programme sind in
ihrer Wirkung vollkommen äquivalent:

Die zweite Version entsteht aus der (Die Farben stammen von der IDE
ersten durch a) Kommentierung, b) „Eclipse“ und geören nicht zu Java)
Verwendung sprechender(er) Namen und
c) Formatierung zur Unterstreichung der
Programmstruktur:

Martin Hitz | ESOP 2018 Version 02.03.18 51


Martin Hitz | ESOP 2018 Version 02.03.18 52