W3docs

Java-Syntax

Grundlegende Java-Syntax verstehen: Anweisungen, Blöcke, Bezeichner, Schlüsselwörter, Groß-/Kleinschreibung und Aufbau einer Java-Quelldatei.

Die Java-Syntax gibt einer .java-Datei ihre Form: wo Anweisungen enden, wie Codeblöcke gruppiert werden, welche Wörter eine besondere Bedeutung für den Compiler haben und welche Zeichen in einem Namen zulässig sind. Diese Regeln werden zur Kompilierzeit überprüft — javac verweigert die Erstellung einer .class-Datei, bis alle Regeln erfüllt sind — deshalb spart man sich durch frühzeitiges Erlernen viele verwirrende Fehler.

Dieses Kapitel behandelt die Regeln, auf die Sie sich im Rest des Buches stützen werden: den Aufbau einer Quelldatei, Anweisungen, Blöcke, Bezeichner, Schlüsselwörter, Kommentare, Groß-/Kleinschreibung und Leerzeichen.

Eine vollständige Java-Quelldatei

Jedes eigenständige Java-Programm benötigt mindestens eine Klasse mit einer main-Methode. Hier ist die minimale Datei:

public class App {
    public static void main(String[] args) {
        System.out.println("Hello, syntax!");
    }
}

Auf der Seite passieren drei Dinge:

  • Die Klassendeklaration public class App { ... } schließt alles in eine Klasse ein.
  • Die Methodendeklaration public static void main(String[] args) { ... } ist der Einstiegspunkt des Programms.
  • Die Anweisung System.out.println(...) erledigt die eigentliche Arbeit.

Die Datei muss als App.java gespeichert werden, da die öffentliche Klasse App heißt. Dies ist eine feste Regel: Eine Quelldatei darf höchstens eine public-Klasse enthalten, und der Dateiname muss exakt mit dem Klassennamen übereinstimmen, einschließlich der Groß- und Kleinschreibung. Siehe Java Hello World für den vollständigen Kompilier- und Ausführungszyklus.

Anweisungen enden mit einem Semikolon

Eine Java-Anweisung ist eine Instruktion, die dem Programm mitteilt, etwas zu tun. Jede Anweisung endet mit einem Semikolon:

int score = 0;
score = score + 5;
System.out.println(score);

Da das Semikolon — nicht der Zeilenumbruch — eine Anweisung beendet, können Sie eine lange Anweisung über mehrere Zeilen verteilen oder (weniger lesbar) mehrere Anweisungen in eine Zeile schreiben:

int total = 1 + 2 + 3
          + 4 + 5;        // one statement, two lines
int a = 1; int b = 2;     // two statements, one line

Das Weglassen eines Semikolons ist der häufigste Anfängerfehler. Der Compiler zeigt auf die Zeile, in der er das Problem bemerkt hat, was üblicherweise die Zeile nach derjenigen ist, in der das Semikolon fehlt — wenn Sie also „';' expected" sehen, prüfen Sie die Zeile oberhalb der markierten.

Blöcke gruppieren Anweisungen

Geschweifte Klammern { und } gruppieren Anweisungen zu einem Block. Klassenrümpfe, Methodenrümpfe, Schleifenrümpfe und if-Rümpfe sind alle Blöcke:

public class Counter {        // class block opens
    public static void main(String[] args) {   // method block opens
        for (int i = 0; i < 3; i++) {          // loop block opens
            System.out.println(i);
        }                                       // loop block closes
    }                                           // method block closes
}                                               // class block closes

Einrückungen sind kein Teil der Syntax (der Compiler ignoriert Leerzeichen), aber jeder Leser erwartet vier Leerzeichen pro verschachteltem Block. Die meisten IDEs formatieren dies beim Speichern automatisch.

Bezeichner

Ein Bezeichner ist ein beliebiger Name, den Sie wählen — für eine Klasse, eine Methode, eine Variable oder eine Konstante. Die Regeln:

  • Beginnt mit einem Buchstaben, _ oder $.
  • Nach dem ersten Zeichen dürfen auch Ziffern folgen.
  • Groß-/Kleinschreibung wird unterschieden: total und Total sind verschiedene Namen.
  • Darf kein reserviertes Schlüsselwort sein (class, int, return usw.).
  • Keine Längenbeschränkung.

Gültig: total, lineCount, _temp, $jquery, userName2. Ungültig: 2lines (beginnt mit Ziffer), line-count (Bindestrich), class (Schlüsselwort).

Das sind die Regeln, die der Compiler erzwingt. Darüber hinaus hat Java starke Namenskonventionen, die der Compiler ignoriert, die aber jeder Java-Entwickler erwartet:

  • Klassen verwenden UpperCamelCaseBankAccount, HttpServer.
  • Methoden und Variablen verwenden lowerCamelCaseaccountBalance, parseInput.
  • Konstanten verwenden UPPER_SNAKE_CASEMAX_SIZE.

In der Praxis sind diese Konventionen nicht optional. Das Kapitel Java Variables geht tiefer auf Benennung und Deklaration von Daten ein.

Schlüsselwörter

Java reserviert rund 50 Wörter für die Sprache selbst. Sie können diese nicht als Bezeichner verwenden. Die am häufigsten vorkommenden:

abstract  case      do        finally    int         private     synchronized  throws
assert    catch     double    float      interface   protected   this          transient
boolean   char      else      for        long        public      throw         try
break     class     enum      if         new         return      void          while
byte      continue  extends   import     null        short       volatile      switch

Dazu kommen einige kontextbezogene Schlüsselwörter, die in modernem Java hinzugefügt wurden und nur an bestimmten Positionen eine besondere Bedeutung haben (var, yield, record, sealed, permits).

Groß- und Kleinschreibung

Java unterscheidet überall zwischen Groß- und Kleinschreibung — bei Klassennamen, Methodennamen, Variablen und Schlüsselwörtern. System ist nicht dasselbe wie system, und if ist nicht dasselbe wie If. Der Compiler meldet „cannot find symbol", wenn Sie einen Namen falsch schreiben.

Leerzeichen und Zeilenumbrüche

Leerzeichen, Tabulatoren und Zeilenumbrüche zwischen Token sind gleichwertig. Dem Compiler ist es egal, ob Sie schreiben:

int x=1+2;

oder:

int x = 1 + 2;

Verwenden Sie das, was lesbarer ist; das Standard-Stylesheet (und der Formatter Ihrer IDE) liefern Ihnen die richtige Antwort.

Der einzige Ort, an dem Leerzeichen tatsächlich eine Rolle spielen, sind String- und Zeichenliterale: "Hello world" und "Helloworld" sind verschiedene Werte, und Leerzeichen darin werden exakt so beibehalten, wie sie eingegeben wurden.

Kommentare

Ein Kommentar ist Text, den der Compiler vollständig ignoriert. Java kennt drei Formen:

// line comment — runs to the end of the line

/* block comment —
   can span multiple lines */

/**
 * Javadoc comment — a block comment whose first character
 * is an extra asterisk. Tools generate API docs from these.
 */

Verwenden Sie Kommentare, um zu erklären, warum etwas getan wird, und nicht, um zu wiederholen, was der Code offensichtlich tut. Das Kapitel Java Comments behandelt jede Form und wann man sie einsetzen sollte.

Warnung

Block comments do not nest. Writing /* outer /* inner */ */ ends the comment at the first */, and the leftover */ becomes a syntax error. To comment out a region that already contains /* ... */, use line comments (//) instead.

Ein Programm, das die Regeln anwendet

java— editable, runs on the server

Beachten Sie, dass jede Anweisung mit ; endet, die Klassen- und Methodenrümpfe Blöcke { ... } sind, die Namen x, y und product gültige Bezeichner sind und die Datei als Demo.java gespeichert werden würde.

Was kommt als Nächstes

Das nächste Kapitel, Java Output, behandelt die drei Ausgabemethoden (print, println, printf), mit denen Sie überprüfen, was Ihre Programme tun. Danach erklärt Java Data Types, welche Arten von Werten Ihre Bezeichner enthalten können.

Übungen

Übung
Welche Aussage zur Java-Syntax ist korrekt?
Welche Aussage zur Java-Syntax ist korrekt?
Was this page helpful?