Il est souvent nécessaire d'utiliser des variables supplémentaires qui ne seront utilisées que dans le sous-programme. Ces variables sont appelées locales (ou locales) et ne peuvent être manipulées qu'au sein de la sous-routine dans laquelle elles sont créées.
La portée de la variable locale est le bloc entre accolades dans lequel elle est déclarée
Le programme principal en Java est également un sous-programme, donc toutes les variables déclarées dans
main()
sont des variables locales
Les autres sous-programmes ne "savent" rien des variables locales des autres sous-programmes.
Ainsi, il est possible de limiter la portée (portée) d'une variable uniquement au sous-programme où elle est vraiment nécessaire. En programmation, cette technique est appelée
encapsulation - empêcher une variable d'être modifiée de l'extérieur.
S'il est nécessaire de déclarer une variable qui serait visible n'importe où dans le programme (dans n'importe quel sous-programme), alors ces variables sont déclarées en dehors de tous les sous-programmes (voir le programme 3 du tableau ci-dessous)
Ces variables sont appelées
globales.
En Java, au démarrage du programme, toutes les variables globales sont automatiquement mises à zéro (les variables booléennes deviennent fausses)
Analysez trois programmes :
1) Dans ce programme, la variable i est locale. Une variable locale est déclarée dans une sous-routine |
2) Ici, même s'il y a une variable i dans le programme principal (avec la valeur 7), une nouvelle variable locale i avec la valeur 5 sera créée.
Lorsque vous exécutez ce programme, l'écran affichera la valeur 75 |
3) Ce programme a une variable globale i. Sa valeur peut être changée à l'intérieur d'un sous-programme, et à l'intérieur du programme principal
La procédure fonctionnera avec la variable globale i et lui attribuera une nouvelle valeur égale à 2. La valeur 2 | s'affiche à l'écran
test de vide statique()
{
int je = 5 ;
System.out.println(i);
}
test de vide statique()
{
int je = 5 ;
System.out.println(i);
}
public static void main(String[] args) {
{
int je = 7 ;
System.out.println(i);
test();
}
classe publique principale {
int je ;
test de vide statique()
{
je = 2 ;
}
public static void main(String[] args) {
{
test();
System.out.println(i);
}