[tab name=’Exercice Java’]
Le programme Portee.java ci-dessous sert à illustrer un point important qui concerne la portée des variables dans un programme. Sans exécuter le programme, indiquez tout ce que le programme affichera à l’écran lors de l’exécution. Exécutez ensuite le programme (en cliquant ci-dessous sur « Exécutez le programme ») pour vérifier votre réponse.
class Portee {
public static void main(String[] args) {
int x = 11, y = 22;
System.out.println("1. x = " + x);
System.out.println("2. y = " + y);
System.out.println();
calculer1(x, y);
System.out.println("5. x = " + x);
System.out.println("6. y = " + y);
System.out.println();
calculer2(x, y);
System.out.println("11. x = " + x);
System.out.println("12. y = " + y);
System.out.println();
int [] object = {5};
System.out.println("13. object [0] = " + object [0]);
calculer3(object);
System.out.println("15. object [0] = " + object [0]);
}
static void calculer1(int x, int y) {
x = 878;
y++;
System.out.println("3. x = " + x);
System.out.println("4. y = " + y);
}
static void calculer2(int a, int b) {
int x = 33;
int y = 44;
a = 2 * x;
b = 2 * y;
System.out.println("7. x = " + x);
System.out.println("8. y = " + y);
System.out.println("9. a = " + a);
System.out.println("10. b = " + b);
}
static void calculer3(int [] object) {
object [0] = 37;
System.out.println("14. object [0] = " + object [0]);
}
}[/tab][tab name=’Correction’]
Le programme illustre le fait que chaque variable est locale au bloc où elle a été déclarée. Cela veut dire que la portée (en anglais scope) de la variable est limitée à ce bloc et que la variable n’est pas visible ou utilisable ailleurs dans le programme. Notamment les variables déclarées dans une méthode sont locales à la méthode en question et ne peuvent pas être accédées depuis d’autres méthodes. Pour communiquer une valeur d’une méthode à une autre, il faut l’envoyer comme argument dans l’appel.
Exécution du programme Portee:
1. x = 11 2. y = 22 3. x = 878 4. y = 23 5. x = 11 6. y = 22 7. x = 33 8. y = 44 9. a = 66 10. b = 88 11. x = 11 12. y = 22 13. object [0] = 5 14. object [0] = 37 15. object [0] = 37
[/tab][end_tabset skin= »ginger » ]