IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Modifier une variable static


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut Modifier une variable static
    Bonjour
    j'ai déclaré une variable static dans ma classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static float vitesse[];
    dans le constructeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    vitesse=new float[6];
    for(int i = 0; i < 6; i++) 
    {
       vitesse[i]= 1;
    }
    le problème c'est je n'arrive pas à modifier la valeur(s) de mon tableau static dans une autre classe.
    j'ai essayé avec une méthode static et autres mais la valeur dans mon tableau est toujours à 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maclasse.vitesse[0]=0.5;
    maclasse.setVitesse(0.5,indice)
    avez vous une idée pour résoudre ce problème?

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, d'après ce que tu montres, cela devrait fonctionner.
    Il doit y avoir un problème dans le reste du code.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut
    Tu fais une initialisation dans le constructeur. Donc à chaque appel à ce constructeur, les valeurs reviennent à 1. Si tu veux initialiser ce tableau, il ne faut pas le faire dans le constructeur, mais dans un bloc static :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static float vitesse[];
    static {
      vitesse=new float[6];
      for(int i = 0; i < 6; i++)
      {
        vitesse[i]= 1;
      }
    }

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut
    j ai essayé le morceau de code précedent ,ca marche si je declare une seule variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static float f;
    	static {
    		f=1;
     
    	}
    J'arrive à la modifier aprés.

    mais avec le tableau non,les valeur sont tjrs à 0;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut
    Peux tu montrer les codes que tu utilises ? Penses aussi à la balise CODE (le "#" dans la barre de boutons)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public class Operateurs {
     
    	public static float vitesse[];
    static {
      vitesse=new float[6];
      for(int i = 0; i < 6; i++)
      {
        vitesse[i]= 1;
      }
    }
     
    public static void setVitesseOp(float v, int i) {
     
    		vitesse[i] =v;
     
    	}
    sur l'evenement clic sur un bouton dans une autre classe.je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Operateurs.setVitesseOp((float)0.5, 0);
    voila

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut
    merci JohnNC ca marche ce que tu m'a dit meme avec tableau, j'avais seulement oublier d'enlever l'ininitialisation du constructeur.
    tu m'a vraiment rendu service merci une autre fois.

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    J'ai copié ta classe Operateurs, et j'ai exécuté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void main(String[] args) {
    	for (int i = 0 ; i < Operateurs.vitesse.length ; i++) {
    		System.out.println(Operateurs.vitesse[i]);
    	}
     
    	Operateurs.setVitesseOp((float)0.5, 0);
    	System.out.println("---");
     
    	for (int i = 0 ; i < Operateurs.vitesse.length ; i++) {
    		System.out.println(Operateurs.vitesse[i]);
    	}
    }
    Et j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1.0
    1.0
    1.0
    1.0
    1.0
    1.0
    ---
    0.5
    1.0
    1.0
    1.0
    1.0
    1.0
    Donc si problème il y a ce n'est pas dans le bout de code que tu nous a donné

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Problème avec une variable static
    Par grimsk dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2006, 01h58
  2. Modifier une variable globale
    Par bahet dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/04/2006, 18h04
  3. modifier une variable dans un fichier
    Par Guismay dans le forum Langage
    Réponses: 7
    Dernier message: 11/09/2005, 19h46
  4. [VB6]Initialiser une variable Static dans un évenement
    Par loverdose dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 20/01/2005, 14h57
  5. [héritage] héritage d'une variable static
    Par yaya44 dans le forum Langage
    Réponses: 14
    Dernier message: 29/09/2004, 13h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo