Sauvegarde d'une variable

Fermé
toscan_1 - 31 déc. 2012 à 13:37
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 31 déc. 2012 à 14:06
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

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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 31/12/2012 à 14:10
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