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 compilation — javac 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 lineOublier 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 closesL'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 :
totaletTotalsont 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
UpperCamelCase—BankAccount,HttpServer. - Les méthodes et les variables utilisent
lowerCamelCase—accountBalance,parseInput. - Les constantes utilisent
UPPER_SNAKE_CASE—MAX_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 switchPlus 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.
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
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.