Récupéré valeur d'une classe???

Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

je suis confronté à un problème, j'ai cherché partout sur internet et je n'ai pas trouvé.

Comment récupéré la valeur d'une autre classe en java ? je m'explique


///////////////////
Classe  main
//////////////
public class Mains {

void main(){
Fonction fonction new Fonction()

fonction.initArms();
}

}


ensuite l'autre classe

///////////////////
Classe  Fonction
//////////////

.................//autres fonctions

public void initArmes(){

		int r;
		r = Rand();
			
			
			String[] tabArmes = {"Trophée","Batte","Pistolet","Poison","Hache","Couteau","Corde"};
			 String arms = tabArmes[r];
		
	         setArmes(arms);
	        
			
		}
	// mutateur et acesseur

	public void setArmes(String armes) {
		
		this.armes = armes;

	}
	public String getArmes() {
	
		return armes;
	}


et je veux récupérer mon armes dans cette classe
///////////////////
Classe  Valid
//////////////

...

Fonction fonction new Fonction()

String combo1=fonction.getArmes();



...if (combo1 = getSelectItem)


le problèmes est que combo1 n'a pas l'arme, il est NULL

Avez vous une idée???

merci beaucoup

7 réponses

Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
Et bien alors :

Fonction fonction new Fonction()
Ici, un nouvel objet fonction est crée. Il est tout neuf, le constructeur Fonction() est appelé, et si tu n'en as pas fait les variables de la classes sont initialisées à null pour les objets comme String. la variables armes ne contient donc que null

String combo1=fonction.getArmes();
Et donc ici la fonction getArmes retourne null...
2
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
oui je crois que je vois...

Il y a un truc que tu n'as donc pas bien compris dans l'utilisation des classes.

"sa recharge la classe" : Une classe n'est pas "chargée". Avec une classe on crée des objets (plus précisément on les instancie) qui suivent le design de la classe. Chaque objet différent (crée avec new) possède se propres variables.

Si tu veux un truc commun et fixe, il faut créer une classe statique (public static class) ! Ainsi, ce ne sera pas une classe pour instancier, il ne faudra pas créer d'objets avec new, et tu peux appeler directement les méthodes de la classe à l'aide de MaClasse.maMethode() .
Je crois que les méthodes devraient être déclarées static elles-aussi.

En fait, tu connais surement déjà des classes static : System en est une ;) ( comme dans System.out.println("Hello") )
1
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
est-ce que tu es sûr que le constructeur de Fonction (Fonction() ) fait appel à initArmes() ? sinon c'est normal.
0
Utilisateur anonyme
 
bonsoir à toi,

non car je l'appel de la classe main

quand je fais un system.out.println(armes) dans ma classe Fonction il l'affiche


public void setArmes(String armes) {
		
system.out.println(armes)  --------------> il affiche l'arme

		this.armes = armes;

	}

mais pas dans ma classe Valid

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
comment faire alors?? ^^
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
La fonction initArmes devrait-elle être appelée pour tout objet de type Fonction crée ? Alors dans ce cas fait un constructeur et appelle initArmes depuis ce constructeur, au lieu de depuis le main().

Ce sera plus clair, mais tu pourrais aussi appeler initArmes entre les deux lignes que j'ai copiées...
0
Utilisateur anonyme
 
en faite se que je voulais faire au départ c'était d'initialisé une armes au hasard,

et la partager pour chaque classe, ce sont des boites de dialogue,

donc à chaque fois que je rappelle la boite de dialogue sa recharge la classe Fonction donc l'arme et ce n'est pas se que je veux...

vois tu se que je veux dire^^ lol
0
Utilisateur anonyme
 
Salut,
Je répond un peu en retard, effectivement tu avais raison,^^ je te remercie beaucoup pour ton aide et pour m'avoir éclairer !

bonne soirée
0