Sauvegarde d'une variable

toscan_1 -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je debute en programation Java et j'ai une question toute simple!
Lorsque dans une fonction nous incrementont une variable, lorsque nous sortons de cette fonction et que nous y rerentrons plus tard est ce que cette variable incrementé garde la valeurs qu'elle avait la premiere fois que nous somme sortit de cette fonction ou est ce qu'elle redemarre a 0!
Merci de votre aide!
A voir également:

2 réponses

swed
 
Bonjour,
Tout dépend de la portée de ta variable.
Je te renvoie ici : http://www.commentcamarche.net/contents/java/javavar.php3
Tu y trouveras toutes les informations dont tu as besoin...
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tout dépend où la variable est déclarée.

Si c'est une variable interne de la méthode alors chaque appel de la méthode possédera sa variable propre (elles ont le même nom dans le code, mais elles seront différentes à l'exécution) qui sera initialisée puis modifiée par la fonction et enfin détruite.

Si c'est un membre de classe alors la variable est initialisée à la création de l'objet et chaque appel de la méthode pour cet objet utilisera la même variable, mais un autre objet de la même classe possédera une autre variable et donc une autre valeur.

Si c'est un membre statique de la classe alors la variable est commune à tous les objets de la classe, et chaque appel de la méthode peu importe quel est l'objet appelé, utilisera la même variable.

public class MonObjet
{
    public static int x = 0;
    public int y = 0;
    
    public void inc(int n)
    {
        int z=0;
        
        while (z<n)
        {
            x++;
            y++;
            z++;
            System.out.printf("x=%d\ty=%d\tz=%d\n",x,y,z);
        }
        System.out.println();
    }
    
    public static void main(String[] args)
    {
        MonObjet a = new MonObjet();
        MonObjet b = new MonObjet();
        MonObjet c = new MonObjet();
         
        a.inc(2);
        a.inc(3);
        b.inc(4);
        b.inc(5);
        c.inc(6);
        c.inc(7);
    }
}

Ce qui donne :

x=1	y=1	z=1
x=2	y=2	z=2

x=3	y=3	z=1
x=4	y=4	z=2
x=5	y=5	z=3

x=6	y=1	z=1
x=7	y=2	z=2
x=8	y=3	z=3
x=9	y=4	z=4

x=10	y=5	z=1
x=11	y=6	z=2
x=12	y=7	z=3
x=13	y=8	z=4
x=14	y=9	z=5

x=15	y=1	z=1
x=16	y=2	z=2
x=17	y=3	z=3
x=18	y=4	z=4
x=19	y=5	z=5
x=20	y=6	z=6

x=21	y=7	z=1
x=22	y=8	z=2
x=23	y=9	z=3
x=24	y=10	z=4
x=25	y=11	z=5
x=26	y=12	z=6
x=27	y=13	z=7
La confiance n'exclut pas le contrôle
0