Keyboard shortcuts

Touchez ← ou → pour naviguer les chapitres

Touchez S ou / pour chercher dans le livre

Touchez ? pour afficher ce message

Touchez Esc pour masquer ce message

Accueil > Programmer avec Java > Les bases de Java >

📚 Structure d’un projet Java

Survol et attentes

Définitions

Dans les programmes que nous Ă©crirons, nous verrons des Ă©lĂ©ments de structure entre ‘expression’ et ‘mĂ©thode main’ de façon rĂ©guliĂšre. Occasionnellement nous aurons Ă  utiliser une classe, un package ou un framework plus explicitement. Mais cette liste couvre les Ă©lĂ©ments d’un programme Java de la plus petite Ă  la plus grande structure possible.

Expression
combinaison minimale de texte dans le code source qui respecte la syntaxe du langage de programmation. D’autre texte produit des erreurs de syntaxe. Les expressions Java peuvent ĂȘtre des valeurs littĂ©rales, des variables, des opĂ©rations sur les donnĂ©es, des appels de mĂ©thodes, etc.
Instruction
une expression ou combinaison d’expressions qui effectue une action. Les instructions Java se terminent toujours avec un point-virgule ;. Ils peuvent ĂȘtre des dĂ©clarations de variables, des appels de mĂ©thodes ou des opĂ©rations sur les donnĂ©es.
Bloc de code
un ensemble d’instructions associĂ© Ă  la mĂȘme partie d’un programme. En Java, les blocs de code sont dĂ©limitĂ©s par des accolades {}. Pour amĂ©liorer la lisibilitĂ© du code, les blocs de code sont souvent indentĂ©s. Les outils de votre Ă©diteur de code peuvent vous aider Ă  indenter automatiquement le code.
Méthode
un bloc de code nommĂ© qui a un type (comme les variables) et qui peut recevoir des informations affectant son rĂ©sultat. En programmation plus gĂ©nĂ©ralement, cette structure s’appelle une fonction. Dans Java, toutes les fonctions sont dĂ©finies dans des classes et le nom officielle pour ce type de fonction est une mĂ©thode.
Méthode main
le point d’entrĂ©e du programme1 et le seul bloc de code qui doit absolument ĂȘtre dĂ©clarĂ© dans tout programme Java. C’est la mĂ©thode que Java exĂ©cute automatiquement lorsqu’on lance le programme. Au plus simple2, elle a la signature void main() - ce que nous utiliserons dans nos programmes, mais cette signature peut se dĂ©velopper jusqu’à la signature complĂšte, traditionnelle public static void main(String[] args). Ce cours n’expliquera pas tous les dĂ©tails de la signature traditionnelle.
Classe

Une structure qui dĂ©finit un objet, soit une unitĂ© de programmation qui a des donnĂ©es (nommĂ©es attributs) et des comportements (nommĂ©s mĂ©thodes). Java Ă©tant un langage orientĂ©-objet, la classe est la plus petite structure autonome possible. Tous les programmes Java se tiennent Ă  l’intĂ©rieur d’une ou de plusieurs classes.

Dans nos programmes, la classe unique sera déclarée automatiquement2 la plupart du temps, nous laissant définir les méthodes et attributs directement dans le fichier .java. Parfois, et de maniÚre plus commune dans les grands projets Java, les classes sont des blocs de code déclarées avec le mot-clé class.

Package
un conteneur pour des classes Java, associĂ© Ă  un dossier sur le disque dur. Les packages sont utilisĂ©s pour organiser les classes en groupes logiques et gĂ©rer l’accĂšs aux classes. Dans tous nos programmes, le package de notre code est implicite et ne sera pas dĂ©clarĂ© dans le code source.
Module
un conteneur pour des packages Java (depuis Java9) associĂ© Ă  un fichier module-info.java. Les modules sont utilisĂ©s pour organiser les packages en groupes logiques pour crĂ©er des applications modulaires, n’utilisant que les packages nĂ©cessaires pour l’application. Dans tous nos programmes, le module de notre code est implicite et ne sera pas dĂ©clarĂ© dans le code source.
Framework
une collection de modules Java qui fournissent des fonctionnalitĂ©s prĂȘtes Ă  l’emploi pour des applications spĂ©cifiques. Les frameworks Java les plus connus sont JUnit (pour les tests unitaires), Spring (pour le dĂ©veloppement web), Hibernate (pour la persistance des donnĂ©es) et JavaFX (pour les interfaces graphiques).
Application
une collection de modules Java - ceux du langage, ceux que vous avez écrits et ceux de divers frameworks - qui forment un programme complet.

Objectifs d’apprentissage

À la fin de cette leçon vous devrez ĂȘtre en mesure de :

  • Nommer la structure essentielle Ă  tout programme Java.
  • Comprendre le rĂŽle des accolades et des points-virgules pour sĂ©parer les parties d’un programme Java.
  • Expliquer l’utilitĂ© d’une bonne indentation.

CritĂšres de succĂšs

  • Je peux crĂ©er un fichier .java et Ă©crire le code de base pour un programme Java.
  • Je peux lancer un programme Java au terminal et rĂ©soudre des erreurs de syntaxe, au besoin, pour le faire fonctionner.

Exemple - un programme qui affiche “Bonjour” à la console

Voici les étapes pour produire ce programme :

  1. CrĂ©er un fichier qui s’appelle Bonjour.java - l’extension .java est important. D’autres Ă©lĂ©ments du nom seront expliquĂ©s dans la prochaine leçon.

    C’est possible que les outils de votre EDI suggĂšrent l’insertion d’une classe du mĂȘme nom, p. ex. public class Bonjour { }, dĂšs que le fichier s’ouvre dans l’éditeur. Vous devrez effacer ce code afin de maintenir la structure minimale pour ce programme.2

  2. Définir une méthode main. Les deux accolades {} représentent les limites du contenu de la méthode.
    void main() {}
    

    Si vos outils Java sont activĂ©s, vous devrez voir deux liens : Run | Debug apparaĂźtre au-dessus de la mĂ©thode main. Cela signifie que le compilateur Java a reconnu la mĂ©thode main comme le point d’entrĂ©e du programme.

  3. C’est utile de taper EntrĂ©e entre les deux accolades pour crĂ©er un espace pour les instructions. Vous verrez que l’accolade fermante est placĂ©e directement sous le dĂ©but de la ligne void main() tandis que le curseur est indentĂ© vers la droite. Cela est une convention de format pour nous aider Ă  voir que les accolades sont bien fermĂ©es pour les diffĂ©rents blocs de code.
    void main() {
        
    }
    
  4. Ajouter des instructions Ă  l’intĂ©rieur de la mĂ©thode main, soit entre ces deux accolades. Dans ce cas-ci, on inclut une seule instruction qui affiche le texte “Bonjour!” Ă  la sortie du systĂšme (la console)
    void main() {
         System.out.println("Bonjour!");
    }
    

    Notez que l’instruction se termine avec un point-virgule ;. C’est nĂ©cessaire pour toutes les instructions Java.

  5. Lancez le programme avec le bouton Run - soit celui au-dessus de la mĂ©thode main dans l’éditeur, soit le bouton Play en haut Ă  droite de VS Code.

    Normalement, je préfÚre lancer les programmes au terminal avec ma propre commande soit java NomDuFichier.java (ici ce serait java Bonjour.java) mais la structure simplifiée présentée ici exige une commande un peu plus complexe en date de Java23 java --enable-preview NomDuFichier.java.

  6. Vous devriez voir le message “Bonjour!” affichĂ© Ă  la console, sinon un message d’erreur s’il y a un problĂšme avec le code. Les messages d’erreur incluent plusieurs informations pour vous aider Ă  trouver le problĂšme, notamment le numĂ©ro de ligne oĂč le programme a plantĂ©.

Indentation

L’indentation dans l’exemple ci-dessus est trĂšs important pour la lisibilitĂ© du code et pour vĂ©rifier que les accolades sont bien fermĂ©es. Notez que l’accolade fermante est visible directement en dessous de la dĂ©finition de la structure qu’elle ferme (ici la mĂ©thode, mais il y en aura d’autres). C’est une convention de style trĂšs utile parce que c’est facile d’oublier ou d’effacer une accolade par accident.

VS Code devrait crĂ©er cette indentation automatiquement, mais c’est facile de le briser en modifiant ou en dĂ©plaçant du code. Utiliser rĂ©guliĂšrement la commande “Mettre le document en forme” (dans VS Code : Alt+Shift+F ou clic droit > “Mettre le document en forme”) pour maintenir une indentation correcte. Voici des moments quand vous devriez utiliser cette commande :

  • aprĂšs avoir copiĂ©-collĂ© un exemple de code
  • aprĂšs avoir dĂ©placĂ© des instructions ou un bloc de code que vous avez Ă©crit
  • si vous ne voyez plus les accolades fermantes sous la signature du bloc de code (comme void main()) parce qu’il y a d’autre code dans le chemin
  • si toutes vos instructions dans un mĂȘme bloc de code ne sont pas alignĂ©es verticalement
  • avant de rendre un programme lors d’une Ă©valuation

Erreurs de syntaxe communes

Notez que “Mettre le document en forme” ne fonctionne pas s’il y a des erreurs de syntaxe, soit du code qui n’est pas compris par le compilateur Java. Si les outils Java sont activĂ©s, ces erreurs seront signalĂ©s pendant que vous tapez votre code : l’endroit de l’erreur est soulignĂ© en rouge. Si vous passez votre curseur sur cet endroit, vous pouvez lire dans une info-bulle un message dĂ©crivant l’erreur. Si les outils Java ne sont pas activĂ©s, vous verrez le mĂȘme message d’erreur et des informations sur son endroit dans le code quand vous tentez de lancer le programme.

Voici quelques exemples d’erreurs communes :

  • des {, (, ; ou des " manquants ou de surplus dans le code
  • mauvaise capitalisation d’un mot, p. ex. string au lieu de String
  • mot mal Ă©crit, p. ex. print1n (le chiffre 1) au lieu de println (la lettre L minuscule)
  • du texte qui n’est pas emballĂ© dans des guillemets (") -> ce texte est alors interprĂ©tĂ© comme le nom de quelque chose qui devrait exister dans le code mais qu’on ne trouve pas.

Exercices

📚 Tester la comprĂ©hension

Quiz de vĂ©rification sur la structure d’un programme Java

đŸ› ïž Pratique

Travaillez dans le répertoire GitHub partagé par votre enseignant pour la pratique et les exercices

  1. CrĂ©ez un fichier Salut.java et Ă©crivez le code pour afficher le message “Salut gang!” Ă  la console. Assurez-vous que le code fonctionne.
  2. Créez un dossier captures dans votre répertoire de travail.
  3. Prenez une capture d’écran du lancement rĂ©ussi de votre programme au terminal et l’enregistrez dans “captures”. Nommez le fichier 4-1-Structure.png.

    Sur Windows, l’outil de capture d’écran se lance avec la touche Windows + Shift + S. Une fois l’image capturĂ©, cliquez sur l’icĂŽne de notification pour ouvrir l’éditeur des captures. Enregistrez l’image dans le dossier “captures” de ce dossier.

  4. Faites un commit et synchronisez vos changements avec GitHub.

À la fin de cet exercice, votre rĂ©pertoire devrait avoir la structure et le contenu suivants :

pratique-[votre nom]
|---captures
|   `---4-1-Structure.png
|---README.md
`---Salut.java

  1. main n’est pas juste le point d’entrĂ©e pour les programmes Java. C’est une convention qui se trouve implicitement ou explicitement dans un grand nombre de langages, comme Python, C++, C#, Go, etc. ↩

  2. La dĂ©claration implicite d’une classe (ne pas avoir Ă  dĂ©clarer une classe dans le code source) est une simplification permise pour les petits projets depuis Java22 et le JEP463. Cette simplification permet aussi une mĂ©thode void main() comme point de dĂ©part pour le programme. ↩ ↩2 ↩3

© 2022-2025 David Crowley