JAVA : recuperer une variable qui a été set
Fermé
lionheartilly
Messages postés
3
Date d'inscription
samedi 25 août 2012
Statut
Membre
Dernière intervention
25 août 2012
-
25 août 2012 à 21:59
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 25 août 2012 à 23:47
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 25 août 2012 à 23:47
A voir également:
- JAVA : recuperer une variable qui a été set
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java football - Télécharger - Jeux vidéo
- Java jre - Télécharger - Langages
- Télécharger jeux java gameloft gratuit - Forum Mobile
4 réponses
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
25 août 2012 à 22:09
25 août 2012 à 22:09
Plusieurs façon de faire.
Mais si l'on fait new ClassA(), cela crée une nouvelle instance de classe.
Si dans le constructeur de la classe A, rien n'ai fait pour mettre la variable à une autre valeur que 0, alors il est normal de récupérer 0.
De plus, cela fait 3 classe alors qu'une seule aurait suffit. Parce que tel quel, sans explication, avoir 3 classes pour faire ça ne sert strictement à rien.
Mais si l'on fait new ClassA(), cela crée une nouvelle instance de classe.
Si dans le constructeur de la classe A, rien n'ai fait pour mettre la variable à une autre valeur que 0, alors il est normal de récupérer 0.
De plus, cela fait 3 classe alors qu'une seule aurait suffit. Parce que tel quel, sans explication, avoir 3 classes pour faire ça ne sert strictement à rien.
lionheartilly
Messages postés
3
Date d'inscription
samedi 25 août 2012
Statut
Membre
Dernière intervention
25 août 2012
25 août 2012 à 22:48
25 août 2012 à 22:48
Merci de ta réponse.
C'est bien ce que je pensais, que refaire un new Class relançait une nouvelle instance donc ramenait les variables à leur valeur de base (ici 0).
Donc si je comprends bien, il faut que dans le constructeur de ma classA, il faut que je fasse un truc genre :
this.valeur = valeur;
Comme ça, quand je relance new ClassA à partir de ClassB, je récupérerai la variable avec la valeur set ?
Ou alors est-ce que dans ClassB, il n'y a pas un autre moyen de faire appel à classA sans créer une nouvelle instance ? Voire directement appeler la methode getVariable de ClassA directement dans classB ?
Sinon mes différentes classes sont plus complexes que ça, ne t'inquiètes pas, j'ai juste résumé le problème. Oui, il n'y aurait pas d'interet à créer 3 classes juste pour faire une opération débile =)
C'est bien ce que je pensais, que refaire un new Class relançait une nouvelle instance donc ramenait les variables à leur valeur de base (ici 0).
Donc si je comprends bien, il faut que dans le constructeur de ma classA, il faut que je fasse un truc genre :
this.valeur = valeur;
Comme ça, quand je relance new ClassA à partir de ClassB, je récupérerai la variable avec la valeur set ?
Ou alors est-ce que dans ClassB, il n'y a pas un autre moyen de faire appel à classA sans créer une nouvelle instance ? Voire directement appeler la methode getVariable de ClassA directement dans classB ?
Sinon mes différentes classes sont plus complexes que ça, ne t'inquiètes pas, j'ai juste résumé le problème. Oui, il n'y aurait pas d'interet à créer 3 classes juste pour faire une opération débile =)
lionheartilly
Messages postés
3
Date d'inscription
samedi 25 août 2012
Statut
Membre
Dernière intervention
25 août 2012
25 août 2012 à 23:37
25 août 2012 à 23:37
Je crois que j'ai trouvé :
il faut que je déclare static la variable dans ma classA.
Comme ça, quand je la set une fois dans mon Main, puis que je la get dans ma classB, la variable restera égale à la valeur que j'avais définie dans mon set.
(je peux pas le tester maintenant, j'ai pas eclipse sur le pc ou je suis, mais merci de me confirmer si c'est ça qu'il faut faire.)
il faut que je déclare static la variable dans ma classA.
Comme ça, quand je la set une fois dans mon Main, puis que je la get dans ma classB, la variable restera égale à la valeur que j'avais définie dans mon set.
(je peux pas le tester maintenant, j'ai pas eclipse sur le pc ou je suis, mais merci de me confirmer si c'est ça qu'il faut faire.)
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 014
25 août 2012 à 23:47
25 août 2012 à 23:47
Je crois que tu n'as pas encore bien la notion d'objet.
"relançait une nouvelle instance donc ramenait les variables à leur valeur de base"
Ce ne sont pas les mêmes variables ! Chaque objet aura ses variables propres, donc faire un set sur un objet ne modifiera pas les valeurs sur les autres objets... ou alors il faut utiliser des variables statiques, mais est-ce que c'est ce que tu veux !?
Pour mieux comprendre ton problème, pourrais-tu refaire ton code en Java correct ?
Parce que là je suis un peu perdu avec ton pseudo-code, j'ai du mal à voir si ce sont des instructions de classes, des constructeurs, ou des main, c'est très différent.
Exemple :
"relançait une nouvelle instance donc ramenait les variables à leur valeur de base"
Ce ne sont pas les mêmes variables ! Chaque objet aura ses variables propres, donc faire un set sur un objet ne modifiera pas les valeurs sur les autres objets... ou alors il faut utiliser des variables statiques, mais est-ce que c'est ce que tu veux !?
Pour mieux comprendre ton problème, pourrais-tu refaire ton code en Java correct ?
Parce que là je suis un peu perdu avec ton pseudo-code, j'ai du mal à voir si ce sont des instructions de classes, des constructeurs, ou des main, c'est très différent.
Exemple :
// Ton pseudo code Class Main { ClassA a = new ClassA(); a.setVariable(valeur_desiree); ClassB b = new ClassB(); b.getVariable(); } // Des instructions de classe <code>class Main { ClassA a = new ClassA(); // Attribut de la classe { a.setVariable(valeur_desiree); } ClassB b = new ClassB(); { b.getVariable(); } } // Un constructeur class Main { Main() { ClassA a = new ClassA(); // Variable locale du constructeur a.setVariable(valeur_desiree); ClassB b = new ClassB(); b.getVariable(); } } // Un main class Main { public static void main(String...args) { ClassA a = new ClassA(); // Variable locale du main a.setVariable(valeur_desiree); ClassB b = new ClassB(); b.getVariable(); } }