Ecrire votre premier programme Java

Ecrire votre premier programme Java

A ce stade, nous supposons que vous avez installé avec succès le JDK et que vous avez pu exécuter les exemples de programmes que nous vous avons présentés dans not premiers articles sur Java. Il est temps de commencer à programmer.

Cet article ainsi que d’autres montrent comment les concepts de programmation de base tels que les types de données, les instructions de sélection et les boucles sont implémentés en Java.

Un simple programme Java

Regardons de plus près l’un des programmes Java les plus simples que vous puissiez avoir – un qui ne fait qu’imprimer un message sur la console:

public class PremierEchantillon
    {
        public static void main(String[] args)
            {
                System.out.println("Nous n'utiliserons pas 'Hello, World!'") ;
            }
    }

Il vaut la peine de passer tout le temps qu’il faut pour être à l’aise avec le framework de cet échantillon ; les pièces vont réapparaître dans toutes les applications.

D’abord et avant tout, Java est sensible à la casse. Si vous avez fait des erreurs dans la mise en majuscules (par exemple en tapant Main au lieu de main), le programme ne s’exécutera pas.

Regardons maintenant ce code source ligne par ligne. Le mot-clé public s’appelle un modificateur d’accès ; ces modificateurs contrôlent le niveau d’accès des autres parties d’un programme à ce code.

Nous en dirons plus sur les modificateurs d’accès dans une série d’articles sur l’héritage. Le mot-clé class vous rappelle que tout dans un programme Java vit à l’intérieur d’une classe.

Bien que nous passerons beaucoup plus de temps sur les classes dans la série d’articles sur les objets et les classes, pour l’instant pensez à une classe comme un conteneur pour la logique du programme qui définit le comportement d’une application.

Les classes sont les blocs de construction avec lesquels toutes les applications et applets Java sont construites. Tout ce qui se trouve dans un programme Java doit se trouver dans une classe.

Le nom de la classe est placé après le mot-clé class. Les règles applicables sur les noms de classes en Java sont assez généreuses.

Les noms doivent commencer par une lettre, et après cela, ils peuvent avoir n’importe quelle combinaison de lettres et de chiffres. La longueur est essentiellement illimitée. Vous ne pouvez pas utiliser un mot réservé Java (tel que public ou class) pour un nom de classe.

Convention de nommage standard

La convention de nommage standard (que nous suivons dans le nom PremierEchantillon) est que les noms de classe sont des noms qui commencent par une lettre majuscule.

Si un nom est composé de plusieurs mots, utilisez une lettre majuscule initiale dans chacun des mots. Cette utilisation de lettres majuscules au milieu d’un mot est parfois appelée “camel case” ou, de manière autoréférentielle, “casse à CamelCase”.

Vous devez rendre le nom du fichier du code source identique au nom de la classe publique, avec l’extension.java attachée. Ainsi, vous devez stocker ce code dans un fichier appelé PremierEchantillon.java (encore une fois, la casse est importante – n’utilisez pas premierechantillon.java.

Si vous avez nommé le fichier correctement et que vous n’avez pas fait de fautes de frappe dans le code source, alors lorsque vous compilez ce code source, vous obtenez un fichier contenant les bytecodes pour cette classe.

Le compilateur Java nomme automatiquement le fichier bytecode PremierEchantillon.class et le stocke dans le même répertoire que le fichier source. Enfin, exécutez le programme en lançant la commande suivante :

java PremierEchantillon

Lorsque le programme s’exécute, il affiche tout simplement simplement la chaîne de caractères “Nous n’utiliserons pas ‘Hello, World!'” sur la console.

Lorsque vous utilisez l’instruction

java NomDeClasse

pour exécuter un programme compilé, la machine virtuelle Java lance toujours l’exécution avec le code de la méthode principale dans la classe que vous indiquez. Le terme “méthode” est utilisé en Java pour désigner une fonction.

Ainsi, vous devez avoir une méthode principale dans le code source de votre classe pour que votre code soit exécuté. Vous pouvez, bien sûr, ajouter vos propres méthodes à une classe et les appeler depuis la méthode principale.

Selon la spécification de langage Java, la méthode main doit être déclarée publique. La spécification du langage Java est le document officiel qui décrit le langage Java. Vous pouvez le consulter ou le télécharger à partir de l’adresse Web http://docs.oracle.com/javase/specs.

Cependant, plusieurs versions du lanceur Java étaient prêtes à exécuter des programmes Java même lorsque la méthode main n’était pas publique. Un programmeur a déposé un rapport de bogue. Pour le voir, visitez http://bugs.java.com/bugdatabase/index.jsp et entrez l’ID du bogue 425252539.

En 1999, ce bogue a été marqué comme “fermé, et ne sera pas corrigé”. Un ingénieur de Sun a ajouté une explication selon laquelle la spécification de la machine virtuelle Java (http://docs.oracle.com/javase/specs/jvms/se8/html) n’a pas imposeé que la main soit publique et que “la réparer causera des problèmes potentiels”.

Le lanceur Java dans la version 1.4 et au-delà impose que la méthode principale soit publique.

Il y a quelques aspects intéressants dans cette histoire. D’une part, il est frustrant de voir des ingénieurs en assurance qualité, souvent surchargés de travail et pas toujours experts dans les subtilités de Java, prendre des décisions discutables sur les rapports de bogue.

D’autre part, il est remarquable que Sun ait mis les rapports de bogue et leurs résolutions à la disposition de tous, bien avant que Java ne soit open source.

À un moment donné, Sun a même laissé les programmeurs voter pour leurs bogues les plus méprisés et a utilisé le résultat des votes pour décider lequel d’entre eux serait corrigé dans la prochaine version du JDK.

Uitilisation des accolades

Remarquez les accolades { } dans le code source. En Java, comme en C/C++, les accolades délimitent les parties (généralement appelées blocs) de votre programme. En Java, le code de toute méthode doit être démarré par une accolade d’ouverture { et terminé par une accolade de fermeture }.

Les styles des accolades ont inspiré une quantité démesurée de polémiques inutiles. Nous suivons un style qui aligne les accolades qui correspondent les unes les autres. Comme les espaces blancs ne sont pas pertinents pour le compilateur Java, vous pouvez utiliser n’importe quel style d’accolade que vous aimez.

Pour l’instant, ne vous inquiétez pas du mot-clé static void – considérez-les simplement comme faisant partie de ce dont vous avez besoin pour obtenir un programme Java à compiler.

Le point à retenir pour l’instant est que chaque application Java doit avoir une méthode main qui est déclarée de la manière suivante :

public class NomDeClasse
    {        
        public static void main(String[] args)
            {
                program statements
            }
    }

En tant que programmeur C++, vous savez ce qu’est une classe. Les classes Java sont similaires aux classes C++, mais il y a quelques différences qui peuvent vous piéger.

Par exemple, en Java, toutes les fonctions sont des méthodes d’une certaine classe. (La terminologie standard les appelle des méthodes et non pas des fonctions membres.) Ainsi, en Java, vous devez avoir une classe shell pour la méthode main.

Vous pouvez également être familier avec l’idée des fonctions membre statique en C++. Ce sont des fonctions membres définies à l’intérieur d’une classe qui n’opèrent pas sur les objets. La méthode main en Java est toujours statique.

Enfin, comme en C/C++, le mot-clé void indique que cette méthode ne retourne pas de valeur. Contrairement au C/C++, la méthode main ne renvoie pas de “code de sortie (exit code)” au système d’exploitation.

Si la méthode main quitte normalement, le programme Java a le code de sortie 0, indiquant l’achèvement réussi. Pour terminer le programme avec un code d’exit différent, utilisez la méthode System.exit.

Les méthodes System.out.println et System.out.print

Ensuite, tournez votre attention sur ce fragment :

{
  System.out.println("Nous n'utiliserons pas 'Hello, World!'") ;
}

Les accolades marquent le début et la fin du corps de la méthode. Cette méthode ne contient qu’une seule instruction. Comme avec la plupart des langages de programmation, vous pouvez considérer les instructions Java comme des phrases du langage.

En Java, chaque instruction doit se terminer par un point-virgule. En particulier, les retours chariot ne marquent pas la fin d’une instruction, de sorte que les instructions peuvent couvrir plusieurs lignes si nécessaire.

Le corps de la méthode main contient une instruction qui fournit une seule ligne de texte à la console. Ici, nous utilisons l’objet System.out et appelons sa méthode println. Notez les caractères point utilisées pour appeler une méthode. Java utilise la syntaxe générale

object.method(paramètres)

comme son équivalent d’appel de fonction.

Dans ce cas, nous appelons la méthode println et lui passons un paramètre chaîne de caractères. La méthode affiche le paramètre de type chaîne de caractères sur la console.

Elle ferme ensuite la ligne de sortie (lui ajoute le caractère retour à la ligne), de sorte que chaque appel à println affiche sa sortie sur une nouvelle ligne. Notez que Java, comme C/C++, utilise les guillemets doubles pour délimiter les chaînes de caractères.

Les méthodes en Java, comme les fonctions dans n’importe quel langage de programmation, peuvent utiliser zéro, un ou plusieurs paramètres (certains programmeurs les appellent arguments).

Même si une méthode ne prend aucun paramètre, vous devez quand même utiliser des parenthèses vides. Par exemple, une variante de la méthode println sans paramètres imprime simplement une ligne blanche. Vous l’invoquez avec l’appel
System.out.println() ;

System.out dispose également de la méthode print qui n’ajoute pas de caractère de nouvelle ligne à la sortie. Par exemple, System.out.print(“Bonjour”) imprime Bonjour sans nouvelle ligne. La sortie suivante apparaît immédiatement après la lettre r.

Un petit mot sur la portée d’un bloc de code Java

Avant de vous familiariser avec les outils de programmation de Java comme les structures de contrôle, vous devez en savoir plus sur les blocs.

Un bloc, ou instruction composée, se compose d’un certain nombre d’instructions Java, entourées d’une paire d’accolades. Les blocs définissent la portée de vos variables. Un bloc peut être imbriqué dans un autre bloc. Voici un bloc qui est imbriqué dans le bloc de la méthode main():

public static void main(String[] args)
  {
     int n;
     . . .
    {
        int k;
        . . .
    } // k n'est défini que jusqu'ici
  }

Vous ne pouvez pas déclarer des variables de nom identique dans deux blocs imbriqués. Par exemple, ce qui suit est une erreur et ne sera pas compilé :

public static void main(String[] args)
  {
      int n;
      . . .
     {
        int k;
        int n; // ERREUR -- ne peut pas redéfinir n dans le bloc intérieur
        . . .
     }
 }

En C++, il est possible de redéfinir une variable dans un bloc imbriqué. La définition intérieure est alors l’ombre de la définition extérieure. Cela peut être une source d’erreurs de programmation ; par conséquent, Java ne le permet pas.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here