Programmation Java/Bases du langage

Un livre de Wikilivres.

Un programme Java est une suite d'instructions exécutées de manière séquentielle. D'une manière générale, les instructions sont terminées par des points-virgules « ; ».

Ces instructions s'exécutent de gauche à droite et de haut en bas. Elles peuvent être organisées dans des blocs.

Identificateurs[modifier | modifier le wikicode]

Les différentes parties d'une classe possède un nom, qui doit être unique dans le contexte local afin d'identifier cet élément :

  • nom du package où se situe la classe (implique une structure de répertoires ayant les mêmes noms),
  • nom de la classe et des classes internes,
  • nom des méthodes et attributs membres de la classes,
  • nom des variables locales aux méthodes.

Tous ces noms sont appelés identificateurs et ont des contraintes :

  • Un identificateur ne peut être composé que de lettres, de chiffres et du caractère souligné. Les caractères unicode sont acceptés.
  • Un identificateur ne peut commencer par un chiffre, pour éviter l'ambiguïté avec les nombres.
  • Depuis Java 9, le caractère souligné seul n'est plus accepté car il est devenu un mot clé. En Java 8, cela provoque un avertissement à la compilation.
  • Les identificateurs des packages étant identiques aux noms des répertoires, ils doivent également obéir aux règles des noms de répertoire acceptables sur tous les systèmes où le programme tourne. Notamment sur Windows, certains noms sont réservés : aux, nul, com1 ...
Exemples d'identificateurs
Identificateurs valides Identificateurs invalides
somme_en_
somme_en_$
somme_en_£
dépenses_2022
7jours           // <!> commence par un chiffre
somme totale     // <!> contient un espace
revenus+dépenses // <!> contient un caractère réservé (+)

Point d'entrée du programme[modifier | modifier le wikicode]

Tout programme Java contient au moins une classe[1], nommée par convention avec une majuscule contrairement aux méthodes. De plus, il nécessite un point d'entrée. Pour un programme simple, le point d'entrée est la méthode "main" qui doit être publique, statique et située dans une classe qui elle même doit être publique (d'où les mots-clés public et static) :

public class ClassTest
{
	public static void main(String args[])
	{
		// Instructions du programme
	}
}

L'argument args de cette méthode contient les paramètres passés au programme par la ligne de commande.

D'autres types de programmes, comme les applets, les servlets ou encore les applications Android, utilisent d'autres méthodes comme point d'entrée.

Blocs d'instructions[modifier | modifier le wikicode]

Un bloc d'instructions est une suite d'instructions commençant par une accolade ouvrante ( { ) et se terminant par une accolade fermante ( } ).

Un bloc d'instructions est considéré comme une seule instruction par les instructions for, while, if, else et case. Nous détaillerons cela plus loin.

Ce bloc délimite également la portée des variables. Toute variable déclarée dans ce bloc n'est accessible qu'à partir de ce bloc, et n'existe que durant l'exécution du bloc.

Commentaires[modifier | modifier le wikicode]

Pour plus de détails voir : Programmation Java/Commentaires.

Les commentaires sont, en programmation informatique, des portions du code source ignorées par le compilateur. Ils sont très pratiques pour préciser quelque chose ou pour "mettre de côté" du code sans le supprimer. Java permet d'insérer des commentaires en utilisant deux syntaxes différentes :

  • La séquence // permet d'insérer un commentaire sur une seule ligne, qui se termine donc à la fin de la ligne.
  • La séquence /* permet d'insérer un commentaire sur plusieurs lignes. La séquence */ marque la fin du commentaire. En d'autres termes, tout ce qui est situé entre /* et */ est considéré comme faisant partie du commentaire.

Exemple :

// Commentaire sur une ligne
public class /* un commentaire au milieu de la ligne */ Exemple
{
    /*
        Commentaire sur
        plusieurs lignes
        ...
    */
    public static void main(String[] args)
    {
    }
}

Commentaire Javadoc[modifier | modifier le wikicode]

Les commentaires normaux sont totalement ignorés par le compilateur Java.

En revanche, certains commentaires sont interprétés par le générateur automatique de documentation Javadoc.

Ces commentaires commencent par la séquence /** et se terminent par */. Le contenu décrit l'entité qui suit (classe, interface, méthode ou attribut), suivi d'une série d'attributs dont le nom commence par un arobase @.

La documentation générée étant au format HTML, il est possible d'insérer des balises dans la description.

Exemple :

/**
    Une classe pour illustrer les commentaires Javadoc.
    @author Moi :-)
*/
public class Exemple
{
    /**
        Une méthode <b>main</b> qui ne fait rien.
        @param args Les arguments de la ligne de commande.
    */
    public static void main(String[] args)
    {
    }
}

En fait, il existe un attribut Javadoc qui est pris en compte par le compilateur : l'attribut @deprecated. Cet attribut marque une classe, une méthode ou une variable comme obsolète. Ce qui signifie que si une autre classe l'utilise un avertissement est affiché à la compilation de cette classe.

Exemple :

/**
    Une méthode obsolète. Il faut utiliser get() à la place.
    @deprecated
*/
public Object getElement(int index)
{ ... }

/**
    Une nouvelle méthode.
*/
public Object get(int index)
{ ... }

Cet attribut permet de modifier une bibliothèque de classe utilisée par plusieurs applications, en la laissant compatible avec les applications utilisant l'ancienne version, mais en indiquant que les anciennes classes / méthodes / variables ne doivent plus être utilisées et pourraient ne plus apparaître dans une version ultérieure.

Références[modifier | modifier le wikicode]

  1. Kathy Sierra, Bert Bates, Java : tête la première, O'Reilly Media, Inc., (lire en ligne)