UKOnline

Variable et constante

On vient de voir les différents types de données. Afin de pouvoir les utiliser dans un programme, il faut pouvoir les stocker dans la mémoire. Pour cela, cette section décrit le concept très important de variable.

Variable

On peut voir une variable comme une boite dans laquelle on peut placer une donnée. Cette boite, on va lui donner un nom afin de l'identifier pour accéder et modifier son contenu.

La figure 8 illustre ce concept. La variable, c'est la boite grise. Elle a pour nom variable (pas très original, mais bon, c'est pour l'exemple), et sa valeur, c'est-à-dire la donnée qu'elle stocke, c'est 17. Toute variable possède aussi un type, c'est celui de la donnée qu'elle stocke. Dans notre exemple, la valeur stockée est de type primitif int.

Variable
Une variable de nom variable, de type int et contenant la donnée 17.

Déclaration

Java est un langage où toute variable possède un et un seul type qui ne change jamais (on dit que Java est un langage à typage statique, contrairement à PHP (http://www.php.net) ou Python (http://www.python.org), par exemple, qui sont à typage dynamique). Et donc, pour pouvoir utiliser une variable, il va avant tout falloir la déclarer. Déclarer une variable, c'est définir son type, c'est-à-dire celui de la donnée qu'elle va contenir, et c'est aussi lui donner un nom. Voici comment on déclare une variable de type int dont le nom est faces :

On pourrait par exemple utiliser cette variable pour stocker le nombre de faces d'un dé.

On a ainsi déclaré une nouvelle variable, mais celle-ci ne contient aucune donnée pour l'instant. On dit que la valeur de la variable est indéfinie, ou que la variable est non-initialisée.

Modifier le contenu d'une variable

Pour modifier le contenu d'une variable, il faut utiliser un opérateur, c'est le sujet du chapitre suivant. Sachez déjà qu'on utilise l'opérateur d'affectation ( = ) pour stocker une donnée dans une variable.

Pour affecter la donnée 6 à la variable dont le nom est faces, il faut écrire :

On voit donc que pour utiliser une variable (c'est-à-dire manipuler son contenu), on utilise son nom. Une variable ne peut contenir que des données qui correspondent à son type. Toute tentative d'affecter à une variable une donnée ne correspondant pas à son type se soldera par une erreur de compilation (pour être exact, toute tentative d'affecter à une variable une valeur non compatible avec son type se soldera par une erreur ; c'est le sujet du chapitre suivant).

De plus, une variable ne peut contenir qu'une seule donnée. Par conséquent, lorsque vous affectez une nouvelle donnée à une variable, la donnée qui s'y trouvait est supprimée au profit de la nouvelle.

Lorsqu'on déclare une variable, sa valeur est indéfinie. La première fois qu'on modifie son contenu, on initialise la variable. On peut combiner la déclaration et l'initialisation d'une variable en une seule instruction :

Afficher le contenu d'une variable

On peut utiliser les méthodes print et println de l'objet System.out pour afficher le contenu d'une variable ou pour afficher la valeur d'un littéral. Attention, si vous tentez d'afficher la valeur d'une variable non-initialisée, cela provoquera une erreur de compilation.

La différence entre print et println est que la première méthode va afficher une valeur tout en restant sur la même ligne, c'est-à-dire que la prochaine valeur qui sera affichée le sera juste à côté de celle qui vient de l'être. En utilisant println, un retour à la ligne est ajouté, et le curseur passe donc à la ligne suivante. La figure 9 montre un exemple de programme affichant des variables et des littéraux à l'écran. Le résultat de l'exécution du programme est :

6.6
.
Afficher le contenu d'une variable à l'écran.

Constante

Parfois, on manipule des données qui restent constantes durant toute l'exécution du programme. Pour stocker de telles valeurs, on peut utiliser des constantes qui sont des variables dont on ne peut changer la donnée qu'elles contiennent. Pour signaler qu'une variable est une constante, on utilise le mot réservé final lors de sa déclaration :

On ne peut plus changer la valeur d'une constante une fois qu'elle a été initialisée. Si on tente de le faire, on se retrouve face à une erreur de compilation. On peut aussi déclarer et initialiser une constante en une seule ligne :

Utiliser les constantes est bénéfique pour deux principales raisons. La première est que cela évitera d'accidentellement modifier la valeur d'une variable qui ne devrait pas changer. Le compilateur veillera en effet à ce que cela n'arrive pas. La deuxième est que cela permet au compilateur de faire des optimisations pouvant accélérer l'exécution du code.

Convention de nommage

Le nom d'une variable est un identificateur ; il faut donc que celui-ci suive la règle que nous avons vue en début de chapitre. De plus, il existe des conventions (que vous n'êtes pas obligés de suivre) pour donner un nom aux variables et constantes : c'est ce qu'on appelle les conventions de nommage.

Par convention, les noms de variables commencent par une minuscule et ne contiennent des majuscules qu'à chaque changement de mot, pour des noms composés. Cette façon de faire est appelée la casse chameau. Pour les constantes, le nom est complètement en majuscules avec les mots séparés par des tirets de soulignement ( _ ).

Voici un exemple qui suit cette convention :

De plus, il convient de choisir des noms de variable qui soient le plus concis et explicites possibles. Un nom de variable comme maSuperVariableQuiContientMonAge est tout à fait à éviter et on préférera monAge ou même simplement age.