Grundprogramm: Java-Programm mit Ausgabe von Variablen

Einführung

Beim Arbeiten mit großen Projekten, werden einzelne Programmteile auf mehrere Dateien verteilt. Für das grundlegende Erlernen im Umgang mit Java genügt zu Beginn aber eine einzelne Datei, die die Endung .java aufweist und eine main-Methode enthält.

Einfach ausgedrückt sucht der Java-Compiler in einer Programmdatei nach einer main-Methode um an dieser Stelle in das Programm einzusteigen. Ist keine main-Methode vorhanden, so kann diese Datei nicht als Einstiegspunkt genutzt werden.

Was bedeutet Einstiegspunkt?

Eine Programmdatei kann sehr viele verschiedene Abschnitte enthalten. Der Einstiegspunkt teilt dem Compiler mit, wo mit der Ausführung des Programms begonnen werden muss. Es ist nämlich nicht so, dass ein Programmabschnitt, der weiter oben vorkommt, auch als erstes ausgeführt wird.

Per Konvention ist der Einstiegspunkt eine Methode, die main heißt. Mehr dazu, was eine Methode ist, folgt in einem späteren Kapitel.

Grundprogramm "Hello world"

In Programmiererkreisen ist es üblich, eine neue Programmiersprache mit dem Programm "Hello world" vorzustellen, einem Programm, das nichts anderes macht, als "Hello world!" auszugeben.

In Java sieht dieses Programm beispielsweise folgendermaßen aus:

== Grundprogramm: Java-Programm mit Ausgabe von Variablen == Einführung Beim Arbeiten mit großen Projekten, werden einzelne Programmteile auf mehrere Dateien verteilt. Für das grundlegende Erlernen im Umgang mit Java genügt zu Beginn aber eine einzelne Datei, die die Endung `.java` aufweist und eine `main`-Methode enthält. Einfach ausgedrückt sucht der Java-Compiler in einer Programmdatei nach einer `main`-Methode um an dieser Stelle in das Programm einzusteigen. Ist keine `main`-Methode vorhanden, so kann diese Datei nicht als Einstiegspunkt genutzt werden. ==== Was bedeutet *Einstiegspunkt*? Eine Programmdatei kann sehr viele verschiedene Abschnitte enthalten. Der Einstiegspunkt teilt dem Compiler mit, wo mit der Ausführung des Programms begonnen werden muss. Es ist nämlich _nicht_ so, dass ein Programmabschnitt, der weiter oben vorkommt, auch als erstes ausgeführt wird. _Per Konvention_ ist der Einstiegspunkt eine _Methode_, die `main` heißt. Mehr dazu, was eine Methode ist, folgt in einem späteren Kapitel. ==== == Grundprogramm "Hello world" In Programmiererkreisen ist es üblich, eine neue Programmiersprache mit dem Programm "Hello world" vorzustellen, einem Programm, das nichts anderes macht, als "Hello world!" auszugeben. In Java sieht dieses Programm beispielsweise folgendermaßen aus:
public class Beispiel {
    public static void main (String[] args){
        System.out.println("Hello world!");
    }
}
Java
[source,java] ---- public class Beispiel { public static void main (String[] args){ System.out.println("Hello world!"); } } ----

In der zweiten Zeile sieht man die bereits angekündigte Methode main, die von der zweiten bis zur vorletzten Zeile reicht. Dies ist daran zu erkennen, dass die geschweifte Klammer, die in der zweiten Zeile geöffnet wird, in der vorletzten Zeile geschlossen wird.

Alles, was sich zwischen diesen beiden geschweiften Klammern befindet, gehört zur Methode main. Ein solcher Abschnitt, der zwischen zwei geschweiften Klammern steht, wird als Block bezeichnet.

Die Zeile

System.out.println("Hello world!");
Java

gibt in der Konsole den Text "Hello world!" aus und wechselt danach in die nächste Zeile.

Beachte, dass jede normale Zeile in Java mit einem Strichpunkt beendet wird. Ausgenommen davon sind Definitionen von Methoden (wie hier die main-Methode) oder Kontrollstrukturen (if-Bedingung, for- und while- Schleife, etc), die am Ende einer Zeile einen neuen Block über eine geschweifte Klammer öffnen.

In der zweiten Zeile sieht man die bereits angekündigte Methode `main`, die von der zweiten bis zur vorletzten Zeile reicht. Dies ist daran zu erkennen, dass die geschweifte Klammer, die in der zweiten Zeile geöffnet wird, in der vorletzten Zeile geschlossen wird. Alles, was sich zwischen diesen beiden geschweiften Klammern befindet, gehört zur Methode `main`. Ein solcher Abschnitt, der zwischen zwei geschweiften Klammern steht, wird als *Block* bezeichnet. Die Zeile [source,java] ---- System.out.println("Hello world!"); ---- gibt _in der Konsole_ den Text "Hello world!" aus und wechselt danach in die nächste Zeile. [NOTE ] ==== Beachte, dass jede _normale Zeile_ in Java mit einem Strichpunkt beendet wird. Ausgenommen davon sind Definitionen von Methoden (wie hier die `main`-Methode) oder Kontrollstrukturen (`if`-Bedingung, `for`- und `while`- Schleife, etc), die am Ende einer Zeile einen neuen Block über eine geschweifte Klammer öffnen. ====

Wie führt man dieses Programm aus?

Da dieses Programm eine öffentliche Klasse (auch dazu später mehr) namens Beispiel enthält, muss dieses Programm als Beispiel.java gespeichert werden.

Nun muss das Programm in Java-Bytecode übersetzt werden, so dass die JVM (Java Virtual Machine) das Programm ausführen kann.

In der Eingabeaufforderung bzw. im Terminal steht bei korrekter Installtion des JDK (Java Development Kit) der Befehl javac zur Verfügung, der den Java-Compiler aufruft.

Wenn man in das Verzeichnis unseres Programms Beispiel.java wechselt und den Befehl

javac Beispiel.java

eingibt, wird das Programm kompiliert und das Ergebnis in Beispiel.class gespeichert.

Um das erzeugte Programm zu starten, wird es mit der JVM ausgeführt durch die Eingabe von

java Beispiel

Daraufhin sollte auf dem Bildschirm der Text Hello world! erscheinen.

Tatsächlich handelt es sich hier um keinen Tippfehler: man gibt nicht java Beispiel.class ein sondern nur java Beispiel.

== Wie führt man dieses Programm aus? Da dieses Programm eine _öffentliche Klasse_ (auch dazu später mehr) namens `Beispiel` enthält, *muss* dieses Programm als `Beispiel.java` gespeichert werden. Nun muss das Programm in https://en.wikipedia.org/wiki/Java_bytecode[icon:external-link[] _Java-Bytecode_] übersetzt werden, so dass die _JVM_ (Java Virtual Machine) das Programm ausführen kann. In der Eingabeaufforderung bzw. im Terminal steht bei korrekter Installtion des _JDK_ (Java Development Kit) der Befehl *javac* zur Verfügung, der den Java-Compiler aufruft. Wenn man in das Verzeichnis unseres Programms `Beispiel.java` wechselt und den Befehl ---- javac Beispiel.java ---- eingibt, wird das Programm _kompiliert_ und das Ergebnis in `Beispiel.class` gespeichert. Um das erzeugte Programm zu starten, wird es mit der _JVM_ ausgeführt durch die Eingabe von ---- java Beispiel ---- Daraufhin sollte auf dem Bildschirm der Text `Hello world!` erscheinen. [WARNING] ==== Tatsächlich handelt es sich hier um keinen Tippfehler: man gibt *nicht* `java Beispiel.class` ein sondern nur `java Beispiel`. ====

Geht das auch einfacher?

Ja!

Denn zum Glück gibt es Entwicklungsumgebungen wie Netbeans, wo man zum Kompilieren und Starten eines Programms einfach auf drücken muss.

Nach kurzer Übersetzungszeit sollte auch hier der Text "Hello world!" erscheinen.

== Geht das auch einfacher? Ja! Denn zum Glück gibt es Entwicklungsumgebungen wie _Netbeans_, wo man zum Kompilieren und Starten eines Programms einfach auf icon:play[role=green] drücken muss. Nach kurzer Übersetzungszeit sollte auch hier der Text "Hello world!" erscheinen.

Ausgabe von Variablen

Um Inhalte von Variablen auszugeben, verwendet man auch den Befehl System.out.println, z. B. so:

== Ausgabe von Variablen Um Inhalte von Variablen auszugeben, verwendet man auch den Befehl `System.out.println`, z. B. so:
public class Beispiel {
    public static void main (String[] args){
        int zahl=10;
        String name="Peter";
        System.out.println("Hallo "+name+"!\nDeine Glückszahl ist"+zahl);
    }
}
Java
[source,java] ---- public class Beispiel { public static void main (String[] args){ int zahl=10; String name="Peter"; System.out.println("Hallo "+name+"!\nDeine Glückszahl ist"+zahl); } } ----

Dieses Programm gibt eine Zeichenkette (also den Inhalt der Variable name vom Typ String) aus und eine ganze Zahl (gespeicher in der Ganzzahl-Variable zahl). Nach dem Starten des Programms sollte der Text

Dieses Programm gibt eine Zeichenkette (also den Inhalt der Variable `name` vom Typ `String`) aus und eine ganze Zahl (gespeicher in der Ganzzahl-Variable `zahl`). Nach dem Starten des Programms sollte der Text
Hallo Peter!
Deine Glückszahl ist 10
---- Hallo Peter! Deine Glückszahl ist 10 ----

erscheinen.

Woher kommt aber der Zeilenumbruch? Dieser wird durch \n erzeugt. Dieses kann wie im Beispiel direkt in den Text eingebettet werden, wird aber durch das vorgestellte \ als Steuercode interpretiert.

Möchte man tatsächlich den Text \n ausgeben, so gelingt dies über

System.out.println("Eine neue Zeile erzeugt man durch \\n!");
Java

Die Ausgabe ergibt dann

Eine neue Zeile erzeugt man durch \n!
erscheinen. Woher kommt aber der Zeilenumbruch? Dieser wird durch `\n` erzeugt. Dieses kann wie im Beispiel direkt in den Text eingebettet werden, wird aber durch das vorgestellte `\` als Steuercode interpretiert. Möchte man tatsächlich den Text `\n` ausgeben, so gelingt dies über [source, java] ---- System.out.println("Eine neue Zeile erzeugt man durch \\n!"); ---- Die Ausgabe ergibt dann ---- Eine neue Zeile erzeugt man durch \n! ----

Weitere Hinweise zur Ausgabe von Strings

http://www.javaschubla.de/2007/javaerst0030.html[icon:external-link[] Weitere Hinweise zur Ausgabe von Strings]