Exercice portée d'une variable
But: | Illustrer un point important concernant la portée des variables | |||
Thème: | Modularisation, portée | |||
Fichiers: |
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.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 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]); }} |
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: