Comment écrire votre premier programme dans Java

De Get Docs
Aller à :navigation, rechercher

Introduction

Java est un langage de programmation mature et bien conçu avec un large éventail d'utilisations, allant de l'étude en classe à l'exécution d'applications commerciales de toute taille. L'un de ses avantages uniques est qu'il est multiplateforme : une fois que vous avez créé un programme Java, vous pouvez l'exécuter sur de nombreux systèmes d'exploitation, y compris les serveurs (Linux/Unix), les ordinateurs de bureau (Windows, macOS, Linux) et les appareils mobiles. systèmes d'exploitation (Android, iOS).

Java atteint des performances élevées car il exécute du code compilé (c'est-à-dire optimisé pour la machine). Pour les développeurs, cela signifie que vous devez compiler son code source avant de pouvoir l'exécuter. Si vous êtes habitué à des langages tels que PHP et Python, qui permettent d'exécuter directement le code source, la compilation préalable du code constituera une nouvelle étape dans le processus de développement.

Dans ce didacticiel, vous allez créer un "Hello, World!" programme dans Java. Le message « Bonjour, le monde ! » programme est une tradition classique et séculaire de la programmation informatique. C'est un premier programme complet pour les débutants, et c'est un bon moyen de s'assurer que votre environnement est correctement configuré. En créant un programme "Hello, World", vous commencerez à apprendre la syntaxe de base du Java ainsi que le processus de compilation et d'exécution d'un programme Java. Une fois que vous avez terminé, vous serez en mesure d'écrire et d'exécuter du code de base Java.

Conditions préalables

Pour ce tutoriel, vous aurez besoin de :

  • Java (version 11 ou supérieure) installé sur votre machine. Pour Ubuntu et Debian, suivez les étapes de l'option 1 dans notre tutoriel, Comment installer Java avec Apt sur Ubuntu 22.04. Pour les autres systèmes d'exploitation, y compris Mac et Windows, consultez les options de téléchargement pour l'installation de Java.
  • Un compilateur fourni par le kit de développement Java (JDK). Pour compiler le code source, vous utiliserez le compilateur Java par défaut appelé javac. Vous pouvez compiler votre source soit sur votre ordinateur local, soit sur un serveur distant dans le cloud. Pour Ubuntu, vous pouvez suivre les instructions d'installation du JDK dans l'option 1 de Comment installer Java avec Apt sur Ubuntu 22.04. Pour les autres plates-formes, consultez le JDK Installation Guide d'Oracle ou les instructions officielles pour l'installation d'OpnJDK version 11 ou supérieure.
    • (Facultatif) Un environnement d'exécution Java (JRE) qui exécutera le code compilé. Le JRE fait partie du JDK, vous n'avez donc pas besoin de l'installer en plus si vous avez déjà installé le JDK. Sinon, vous pouvez installer le JRE séparément. Cela peut être utile si vous avez l'intention d'exécuter votre code sur un serveur distant sur lequel vous ne souhaitez pas compiler de code pour des raisons de sécurité. Dans ce type de scénario orienté serveur, vous pouvez télécharger et installer le JRE via le gestionnaire de packages natif. Pour Ubuntu et Debian, utilisez sudo apt install openjdk-11-jre. Pour les autres distributions, utilisez les gestionnaires de packages respectifs et recherchez le mot-clé jre et choisissez la version 11 ou supérieure.
  • Un terminal dans lequel exécuter des commandes. Java est bien pris en charge sur tous les principaux systèmes d'exploitation, ce qui signifie que vous pouvez suivre les instructions sur votre ordinateur local et utiliser un terminal pour vous connecter à un serveur distant. Pour obtenir des conseils sur la connexion à des serveurs distants, suivez notre Guide de configuration initiale du serveur.
  • Un éditeur de texte tel que nano. Pour commencer à écrire du code Java, vous pouvez utiliser n'importe quel éditeur de texte. Cependant, pour coder efficacement, envisagez d'utiliser un environnement de développement intégré (IDE), tel que Eclipse IDE. Les IDE sont utiles car ils corrigent votre syntaxe, complètent automatiquement votre code et vous permettent de tester le code directement, vous évitant ainsi l'étape de compilation manuelle. Cependant, les IDE ne sont pas toujours intuitifs et peuvent vous dérouter si vous ne les avez jamais utilisés auparavant. Pour votre premier programme Java, il peut être plus facile d'utiliser l'éditeur de texte auquel vous êtes habitué.

Rédaction et exécution du "Hello, World!" Programmer en Java

Pour de nombreuses personnes, leur premier programme Java est souvent aussi leur dernier programme Java. Le problème est que même le code le plus simple semble trop complexe et vous devez apprendre pas mal de nouvelles choses pour bien le comprendre. Pour éviter ce piège courant, vous commencerez par écrire le code, l'exécuter, puis voir comment cela fonctionne.

Pour commencer, créez un nouveau répertoire appelé hello-world dans lequel placer le code de ce tutoriel. Pour créer un répertoire de projet et y accéder, exécutez les commandes suivantes dans un terminal :

mkdir hello-world
cd hello-world

Ensuite, en utilisant nano ou votre éditeur de texte préféré, créez un fichier appelé Hello.java. Pour nano, utilisez la commande suivante :

nano Hello.java

Ajoutez le code suivant à votre fichier. C'est le code minimum pour imprimer un "Hello, World!" message à la console.

bonjour-monde/Bonjour.java

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

Ce programme imprimera le message Hello, World! à la console. Le nom du fichier (dans ce cas, Hello avec la rallonge .java) doit correspondre au nom de la classe publique dans le code source, qui est Hello. Faire correspondre le nom du fichier et le nom de la classe publique dans le code source est une convention de Java. (Il est utile de s'en souvenir car si vous trouvez du code utile, vous saurez comment nommer le fichier de code source Java.)

Enregistrez et fermez votre fichier. Utilisant nano, presse CTRL+X pour quitter, Y pour économiser, et ENTER pour confirmer le nom du fichier et fermer le fichier.

Dans votre terminal, lancez javac du même répertoire où le Hello.java le fichier est localisé pour que le code soit compilé :

javac Hello.java

Le code source Java doit être compilé en utilisant javac avec le nom complet du fichier.

Enfin, exécutez le programme avec le java exécutable comme ceci :

java Hello

Pour exécuter le code compilé, vous devez exécuter java suivi du nom de la classe (qui est Hello dans cet exemple). Vous ne pouvez pas utiliser d'extension de nom de fichier telle que .java ou .class lors de l'exécution du code.

Votre sortie ressemblera à ceci :

Production

Hello, World!

Votre programme s'est exécuté avec succès ! Vous avez créé un programme Java de base, l'avez compilé et exécuté. Ensuite, vous verrez comment tout cela fonctionne.

Comprendre le "Hello, World!" Programme

Si vous avez l'habitude d'écrire du code en Python ou JavaScript, vous constaterez que Java a quelques différences, même dans un petit programme. Chaque programme Java a besoin d'au moins deux choses :

  • Une classe pour votre code.
  • Une méthode principale à l'intérieur de votre classe.

Vous avez besoin d'une classe car Java est orienté objet, et tout le code doit faire partie d'une classe. Les classes sont du code fonctionnellement lié. Habituellement, ils ne fonctionnent pas seuls mais servent plutôt de modèles à partir desquels des objets sont créés. Un object est une instance spécifique d'une classe qui peut être utilisée dans votre code. Les objets ont des propriétés et peuvent agir lorsque vous déclenchez leurs méthodes.

Dans votre programme, la classe est Hello:

bonjour-monde/Bonjour.java

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

La première ligne du code indique le début d'une classe. Les cours commencent toujours par class suivi de leur nom. Dans ce cas, le nom de la classe est Hello, et il correspond au nom du fichier avec le .java extension. Ensuite, il y a une accolade ouvrante ({) et une accolade fermante (}) à la fin de l'extrait de code, à l'intérieur duquel vous placez le code de la classe.

La classe a un modificateur d'accès (que les méthodes ont également). Dans ce cas, c'est public, ce qui signifie qu'il est entièrement accessible.

Il est recommandé d'utiliser une seule classe par fichier, ce qui facilite la lecture du code. Pourtant, il n'y a pas une telle exigence officielle, et vous pouvez avoir un nombre illimité de classes dans un seul fichier. Il y a cependant un hic : une seule des classes à l'intérieur d'un fichier peut être publique, et elle doit avoir le même nom sensible à la casse.

En plus d'une classe, votre programme a également une méthode principale. La méthode principale est le point de départ de l'exécution d'une classe et, pour ce tutoriel, de l'ensemble du programme. Il a une syntaxe très spécifique : public static void main(String[] args):

bonjour-monde/Bonjour.java

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

public est le modificateur d'accès et signifie qu'il n'y a aucune restriction sur l'appel de la méthode.

static est un mot clé spécial indiquant que la méthode (dans ce cas) ou la propriété ne nécessite pas la création explicite d'un nouvel objet pour que vous puissiez l'appeler. Cela a de nombreuses utilisations; en particulier, il résout une possible situation de « poulet et œuf » dans laquelle, à un moment donné, du code devrait être capable de créer le premier objet de votre programme sans faire partie d'un objet lui-même.

void est le type de retour, et cela signifie que rien n'est retourné à l'appelant. Dans ce cas, vous imprimerez un message à l'écran et consommerez ainsi directement le résultat de l'exécution. Bien que void ne renvoie rien ici, dans d'autres cas, les méthodes renvoient souvent diverses informations, telles que des caractères alphanumériques, des entiers ou des objets.

String[] args est le paramètre ou l'entrée pour le main méthode. Une chaîne de caractères, ou chaîne, stocke des informations alphanumériques. Les crochets ([]) indiquent qu'il s'agit d'un tableau de chaînes et non d'une seule chaîne. Le nom de ce tableau est args. Dans ce cas, main() n'a pas d'arguments, mais s'il y en avait, ils seraient contenus dans ce tableau.

Si vous manquez l'un des principaux attributs de la méthode, comme le fait qu'il est public, vous n'obtiendrez peut-être pas d'erreur de syntaxe, mais cela ne fonctionnera pas comme prévu (comme point de départ).

Pour imprimer le texte sur la console, vous utilisez la méthode System.out.println():

bonjour-monde/Bonjour.java

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

Une méthode indique à l'ordinateur d'effectuer une action. Nous pouvons dire qu'il s'agit d'une méthode car elle utilise des parenthèses : (). La méthode elle-même est println() et accepte un argument pour le texte à imprimer. System.out précède la méthode pour spécifier que la méthode fait partie du noyau Java (System) fonctionnalité de sortie (out).

Dans ce cas, vous utilisez une méthode du sous-package out, qui fait partie du package parent, System. Pour avoir une meilleure idée de la façon dont les classes sont organisées dans Java, imaginez que la hiérarchie des classes est similaire à celle d'un système de fichiers avec des dossiers parents et des sous-dossiers dépendants associés. Dans Java, ces dossiers sont appelés packages. Les classes associées sont placées dans un package ou un sous-package en fonction de la granularité de la hiérarchie.

L'argument à System.out.println() est une chaîne : "Hello, World!". Nous savons qu'il s'agit d'une chaîne car une chaîne est toujours entourée de guillemets doubles. Contrairement à d'autres langages, tels que PHP, les guillemets simples ne peuvent pas être utilisés pour les chaînes Java.

Une particularité de la syntaxe Java est qu'elle nécessite un point-virgule à la fin de chaque instruction, comme celle pour l'impression du texte : System.out.println("Hello, world!");.

Remarque : Si vous utilisez un IDE ou un éditeur de texte avec prise en charge de la syntaxe Java, vous n'avez pas à vous soucier des points-virgules manquants, car ces programmes s'occupent automatiquement de cela et d'autres bizarreries de syntaxe.


Dans cette section, vous avez examiné votre programme ligne par ligne pour comprendre son fonctionnement. Dans la section suivante, vous examinerez ce qui se passe lorsque vous compilez et exécutez le programme.

Compilation et exécution de "Hello, World!" Programme

Dans cette section, vous passerez en revue ce qui se passe lorsque vous compilez et exécutez votre programme Java. Pour compiler le code, vous avez utilisé javac du JDK :

javac Hello.java

javac lira le code source, vérifiera les erreurs de syntaxe, appliquera des optimisations et produira un fichier de code d'octet appelé Hello.class. Un fichier Java .class est le code machine que le JRE est capable d'interpréter et d'exécuter.

Vous pouvez visualiser le Hello.class fichier en exécutant le ls commande depuis le répertoire du projet.

ls

Cette commande répertorie les fichiers de votre répertoire actuel :

OutputHello.class  Hello.java

Une fois le code compilé, vous l'exécutez avec le java exécutable depuis le JRE :

java Hello

Le JRE n'exécute que du code compilé et n'est en aucun cas capable d'exécuter du code à partir d'un fichier standard lisible par l'homme. De même, si vous essayez de lire un fichier compilé .class fichier avec un éditeur de texte standard, vous ne pourrez pas. Cependant, avec l'aide d'outils tels que le décompilateur Java, vous pouvez lire des fichiers compilés, ce qui peut être utile lors du débogage de programmes dont vous n'avez pas le code source.

Avec cette commande, vous indiquez à l'exécutable JRE java pour traiter une classe appelée Hello, qui se trouve dans le Hello.class dossier.

Quand le Hello, World! message s'imprime sur la console, vous avez confirmé ce qui suit :

  • Vous disposez d'un environnement Java fonctionnant correctement dans lequel vous pouvez compiler et exécuter du code.
  • Java a localisé avec succès le code du Hello classe, et il est capable d'y accéder.
  • Le flux d'exécution a commencé à partir du main() méthode. Là, la méthode System.out.println() a été invoqué avec l'argument de chaîne Hello, World!. Le message de bienvenue a été imprimé à l'écran.
  • Puisqu'il n'y a pas d'autre code, le programme s'est terminé avec succès.

En invoquant java, vous démarrez un type de machine virtuelle appelé machine virtuelle Java (JVM). Consultez notre article Qu'est-ce qu'une machine virtuelle ? pour des informations plus générales sur les machines virtuelles.

La JVM est bien isolée et ne dépend pas de l'environnement externe, des bibliothèques ou du système d'exploitation hôte dans son ensemble. La JVM se comporte de manière très similaire, sinon exactement la même, sur différents systèmes d'exploitation, ce qui rend Java portable, prévisible et sécurisé. Cela contraste avec d'autres langages tels que PHP, où l'interpréteur PHP s'appuie sur de nombreuses bibliothèques natives du système d'exploitation.

Étant donné que Java exécute sa propre machine virtuelle pour obtenir un tel isolement, ce processus consomme pas mal de mégaoctets de mémoire. Cependant, Java est optimisé pour gérer efficacement les ressources. Même avec la consommation de ressources impliquée dans l'exécution de sa propre machine virtuelle, Java offre d'excellentes performances pour les programmes volumineux, complexes et de longue durée.

En d'autres termes, il peut y avoir des moyens plus simples ou plus efficaces de programmer des messages qui s'affichent à l'écran dans d'autres langues. Mais en utilisant Java, vous serez bien placé pour créer des programmes complexes compatibles avec divers systèmes d'exploitation.

Conclusion

Toutes nos félicitations! Vous avez écrit votre premier programme Java.

Vous pouvez continuer à jouer avec le code dans le Hello.java fichier et voyez ce qui se passe lorsque vous modifiez le texte ou lorsque vous supprimez le point-virgule et obtenez une erreur. Assurez-vous simplement de compiler le code (javac Hello.java) chaque fois que vous apportez des modifications au Hello.java dossier.