W3docs

Syntaxe Java

Découvrez la syntaxe Java — instructions, blocs, identifiants, mots-clés, sensibilité à la casse et structure d'un fichier source Java.

La syntaxe Java est ce qui donne sa forme à un fichier .java : là où les instructions se terminent, comment les blocs de code sont regroupés, quels mots ont une signification particulière pour le compilateur, et quels caractères sont autorisés dans un nom. Ces règles sont vérifiées à la compilationjavac refuse de produire un fichier .class tant qu'elles ne sont pas toutes respectées — aussi les maîtriser tôt vous évitera bien des erreurs déroutantes par la suite.

Ce chapitre couvre les règles sur lesquelles vous vous appuierez tout au long de ce livre : la structure d'un fichier source, les instructions, les blocs, les identifiants, les mots-clés, les commentaires, la sensibilité à la casse et les espaces blancs.

Un fichier source Java complet

Tout programme Java autonome nécessite au moins une classe avec une méthode main. Voici le fichier minimal :

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

Trois choses se passent dans ce fichier :

  • La déclaration de classe public class App { ... } enveloppe tout à l'intérieur d'une classe.
  • La déclaration de méthode public static void main(String[] args) { ... } est le point d'entrée du programme.
  • L'instruction System.out.println(...) effectue le travail.

Le fichier doit être enregistré sous le nom App.java car la classe publique s'appelle App. C'est une règle absolue : un fichier source ne peut contenir qu'une seule classe public, et le nom du fichier doit correspondre exactement au nom de cette classe, y compris la casse. Consultez Java Hello World pour le cycle complet de compilation et d'exécution.

Les instructions se terminent par un point-virgule

Une instruction Java est une commande qui dit au programme d'effectuer quelque chose. Chaque instruction se termine par un point-virgule :

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

Comme c'est le point-virgule — et non le saut de ligne — qui termine une instruction, vous pouvez répartir une longue instruction sur plusieurs lignes, ou (de façon moins lisible) mettre plusieurs instructions sur une seule ligne :

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

Oublier un point-virgule est l'erreur la plus fréquente chez les débutants. Le compilateur indique la ligne où il a détecté le problème, qui est généralement la ligne après celle où le point-virgule est réellement manquant — ainsi, lorsque vous voyez "';' expected", vérifiez la ligne au-dessus de celle signalée.

Les blocs regroupent les instructions

Les accolades { et } regroupent les instructions en un bloc. Les corps de classes, de méthodes, de boucles et d'if sont tous des blocs :

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

L'indentation ne fait pas partie de la syntaxe (le compilateur ignore les espaces blancs), mais tout lecteur s'attendra à quatre espaces par bloc imbriqué. La plupart des IDE effectuent cette mise en forme automatiquement à la sauvegarde.

Identifiants

Un identifiant est n'importe quel nom que vous choisissez — pour une classe, une méthode, une variable, une constante. Les règles :

  • Commence par une lettre, _ ou $.
  • Après le premier caractère, peut aussi contenir des chiffres.
  • Sensible à la casse : total et Total sont des noms différents.
  • Ne peut pas être un mot-clé réservé (class, int, return, etc.).
  • Pas de limite de longueur.

Autorisés : total, lineCount, _temp, $jquery, userName2. Interdits : 2lines (commence par un chiffre), line-count (trait d'union), class (mot-clé).

Ce sont les règles que le compilateur applique. En plus de celles-ci, Java possède de fortes conventions de nommage que le compilateur ignore mais que tout développeur Java attend :

  • Les classes utilisent UpperCamelCaseBankAccount, HttpServer.
  • Les méthodes et les variables utilisent lowerCamelCaseaccountBalance, parseInput.
  • Les constantes utilisent UPPER_SNAKE_CASEMAX_SIZE.

Les respecter n'est pas facultatif en pratique. Le chapitre Java Variables approfondit le nommage et la déclaration des données.

Mots-clés

Java réserve environ 50 mots pour le langage lui-même. Vous ne pouvez pas les utiliser comme identifiants. Ceux que vous rencontrerez le plus souvent :

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

Plus quelques mots-clés contextuels ajoutés dans le Java moderne qui n'ont une signification particulière qu'en certaines positions (var, yield, record, sealed, permits).

Sensibilité à la casse

Java est sensible à la casse partout — noms de classes, noms de méthodes, variables, mots-clés. System n'est pas identique à system, et if n'est pas identique à If. Le compilateur vous indiquera "cannot find symbol" si vous orthographiez mal un nom.

Espaces blancs et sauts de ligne

Les espaces, tabulations et sauts de ligne entre les tokens sont équivalents. Le compilateur ne fait pas la différence entre :

int x=1+2;

et :

int x = 1 + 2;

Utilisez ce qui est le plus lisible ; la feuille de style standard (et le formateur de votre IDE) vous donnera la bonne réponse.

Le seul endroit où les espaces blancs comptent est à l'intérieur des littéraux de chaîne et de caractère : "Hello world" et "Helloworld" sont des valeurs différentes, et les espaces entre eux sont conservés exactement tels que saisis.

Commentaires

Un commentaire est un texte que le compilateur ignore entièrement. Java propose trois formes :

// 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.
 */

Utilisez les commentaires pour expliquer pourquoi quelque chose est fait, et non pour répéter ce que le code fait de toute évidence. Le chapitre Java Comments couvre chaque forme et quand l'utiliser.

Avertissement

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.

Un programme qui illustre les règles

java— editable, runs on the server

Notez que chaque instruction se termine par ;, les corps de classe et de méthode sont des blocs { ... }, les noms x, y et product sont des identifiants valides, et le fichier serait enregistré sous le nom Demo.java.

Prochaine étape

Le prochain chapitre, Java Output, couvre les trois méthodes d'affichage (print, println, printf) que vous utiliserez pour inspecter ce que font vos programmes. Ensuite, Java Data Types explique quels types de valeurs vos identifiants peuvent contenir.

Pratique

Pratique
Quelle affirmation sur la syntaxe Java est correcte ?
Quelle affirmation sur la syntaxe Java est correcte ?
Was this page helpful?