Exercice JAVA modularisation et portée d'une variable

 

But:
Illustrer un point important concernant la portée des variables
Thème:
Modularisation, portée

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.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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:

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