Comment récupéré une variable qui est dans une autre classe
Bonjour,
Je rencontre un problème pour faire remonter ma variable jusqu'au main.
Mon problème se situe dans le fichier Menu.java dans la méthode public int choixPerso()
Pour que cela soit plus compréhensible voici un code :
Fichier App.java qui contient le main.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
package test;
public class App
{
public static void main( String[] args )
{
Menu menu = new Menu();
Game game = new Game();
int nMenuVal = 0;
boolean nLoop = true;
while(nLoop)
{
switch(nMenuVal)
{
case 0:
nMenuVal = menu.welcome(); //Permet de choisir de créer : son perso, jouer ou de quitter.
break;
case 1:
nMenuVal = menu.choixPerso(); //Permet de donner un nom à son perso.
break;
case 2:
game.game(); //De jouer.
nMenuVal = 0;
break;
case 3:
default:
nLoop = false;
}
}
}
} |
Le fichier Menu.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
package test;
import java.util.Scanner;
public class Menu{
private String sChoice;//Récupération de la chaine de caractère entré par l'utilisateur.
private int nChoice; //Choix de l'utilisateur après conversion de String en int.
private boolean bLoop;
Scanner scan = new Scanner(System.in);
public Menu(){
sChoice = "";
nChoice = -1;
bLoop = true;
}
//Récupère le nom rentré par l'utilisateur.
public String nameGamer(){
sChoice = scan.nextLine();
return sChoice;
}
//Accueil demandant de donner un nom à son perso.
public int choixPerso(){
String sNameGamer;
System.out.println(" Donne un nom a ton personnage : ");
sNameGamer = nameGamer();//MON PROBLEME SE SITUE ICI :comment faire pour renvoyer sNameGamer dans le main ?
System.out.println("Nom du perso " + sNameGamer + ".\n");
return 0;
}
//Le menu.
public int welcome(){
System.out.println("/******** Bienvenue dans WARRIOR GAMER ********/");
do{
System.out.println(" - 1 - Creer son personnage.");
System.out.println(" - 2 - Game.");
System.out.println(" - 3 - Quitter.");
sChoice = scan.nextLine();
if(Exceptions.isInteger(sChoice)){
nChoice = Integer.parseInt(sChoice);
bLoop = Tools.isChoiceValidInt(nChoice, 1, 3);
}
else
bLoop = true;
}while(bLoop);
return nChoice;
}
} |
Le fichier Perso.java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
package test;
public class Perso{
private String sName;
public void setName(String s_Name){
sName = s_Name;
}
public String toString(){
return "Mon nom est : " + sName + ".";
}
} |
Pendant que j'y suis : si dans une class je dois utiliser dans plusieurs méthode l'objet Scanner est-ce que je peut instancier la class Scanner comme un attribut comme j'ai fait dans le Menu.java ou bien dois-je l'instancier dans chaque méthode ?