Читать книгу Algorithmen und Datenstrukturen - Gunter Saake - Страница 21
Programm 1.1 »Hello World!« in Java
Оглавление// Hello World! in Java
public class Hello {
public static void main(String[ ] args) {
System.out.println("Hello World!");
}
}
Klassenbezeichner
Für das Programm muss zunächst eine Klasse definiert werden, die als »Kapsel« dient: Attribute und Methoden können nur im Rahmen von Klassen definiert werden. Eine Klassendefinition wird durch das Schlüsselwort class, gefolgt vom Bezeichner der Klasse, eingeleitet. Das im obigen Programm vorangestellte Schlüsselwort public definiert zusätzlich noch die Sichtbarkeit der Klasse und gibt an, dass diese Klasse öffentlich ist, d.h. auch von anderen Modulen aus zugreifbar ist. Es sei an dieser Stelle noch betont, dass bei Java zwischen Groß- und Kleinschreibung unterschieden wird: Die Schlüsselwörter der Sprache (z.B. class) werden grundsätzlich kleingeschrieben, bei Bezeichnern (wie etwa der Name einer Klasse) bleibt dies dem Entwickler überlassen, muss aber konsistent erfolgen. So bezeichnen eineKlasse, EineKlasse und EINEKLASSE verschiedene Klassen!
Definition der Attribute und Methoden Klassenmethode
Im Anschluss an den Klassenbezeichner folgt in geschweiften Klammern die Definition der Attribute und Methoden. In unserem Beispiel umfasst die Klasse nur eine Methode main. Diese Methode ist öffentlich (public), liefert kein Ergebnis zurück (Typ void) und erwartet als Parameter ein Feld von Zeichenketten (String[] args). Obwohl die Parameter in unserem Beispiel nicht benötigt werden, müssen sie dennoch hier angegeben werden, da der Java-Interpreter eine Methode mit exakt der Signatur static void main (String[]) sucht und aufruft. Das Schlüsselwort static kennzeichnet die Methode als, d.h., sie kann ohne Objekt aufgerufen werden. Da wir die Konzepte der Objektorientierung erst in Kapitel 11 behandeln, werden wir zunächst alle Methoden als Klassenmethoden realisieren.
Ausgabe
Die main-Methode besteht nur aus einer Anweisung zur Ausgabe der Zeichenkette »Hello World!« auf den Bildschirm. Diese Anweisung ist der Aufruf der Methode println. Das vorangestellte System.out bezeichnet das Objekt, für das diese Methode aufgerufen wird – es handelt sich hier konkret um ein Objekt, das durch das Attribut out der Klasse System bezeichnet wird und die Ausgabe repräsentiert.
Kommentar
Ein Kommentar im Quelltext wird durch das Voranstellen der Zeichenfolge // gekennzeichnet. In diesem Fall erstreckt sich der Kommentar bis zum Zeilenende. Eine zweite Möglichkeit ist das Einschließen in /* Kommentar */. Hier kann sich der Kommentar auch über mehrere Zeilen erstrecken.
Übersetzung
Der Quelltext der obigen Klasse Hello wird in einer Datei Hello.java gesichert und mithilfe des Compilers übersetzt:
> javac Hello.java
Schließlich wird der erzeugte Bytecode mit dem Interpreter ausgeführt und dabei die Meldung »Hello World!« ausgegeben:
> java Hello
Hello World!
Zu beachten ist, dass nur der Name der auszuführenden Klasse als Parameter angegeben wird und nicht der vollständige Dateiname.
Java-Shell REPL
In der Version 9 wurde mit der JShell ein neues interaktives Werkzeug eingeführt. Hierbei handelt es sich um eine REPL (Read Eval Print Loop), d.h., Java-Deklarationen und -Anweisungen können eingegeben werden und werden sofort ausgeführt. Dies bietet sich gerade für erste Schritte oder einfache Versuche an, da nicht jeweils der Zyklus Editor → Compiler → Interpreter durchlaufen werden muss. Außerdem können auch einzelne Anwendungen direkt ausgeführt werden, ohne dass ein vollständiges Programm zu implementieren ist:
> jshell
| Welcome to JShell – Version 14.0.2
| For an introduction type: /help intro
jshell> System.out.println("Hello Shell!");
Hello Shell!
jshell>
Applet
Eine spezielle Form von Java-Programmen sind die Applets. Das sind kleine Module, die im Rahmen von Webseiten in einem Webbrowser ausgeführt werden. Daraus ergibt sich, dass diese Applets gemeinsam mit dem Dokument vom Webserver geladen werden – das Installieren von Programmen kann damit entfallen. Applets dienen vor allem zur Gestaltung aktiver Elemente in Webseiten. Sie ermöglichen es, Anwendungslogik im Form von Java-Code im Browser auszuführen. So lassen sich beispielsweise Spiele realisieren oder Daten aus anderen Quellen interaktiv präsentieren und manipulieren. Ähnliche Konzepte existieren inzwischen auch für die Ausführung von Java-Programmen auf Mobiltelefonen. Da Applets jedoch aus Sicht der Programmierung keine wesentlichen Unterschiede aufweisen und mit der Version 11 entfernt wurden, werden wir uns im Weiteren auf »normale« Java-Programme beschränken.