[ Foro de Java ]
Por un lado, tengo la clase principal:
class Principal{
public static void main(String[] args) {
MenuAplicacion menu = new MenuAplicacion();
menu.menuInicial();
}
}
Y por otro lado, tengo la clase Menu (en otro archivo):
class Menu {
byte menuInicial() {
teclado = new Scanner(System.in);
byte seleccion;
System.out.println("1 para análisis A");
System.out.println("2 para análisis B");
seleccion = teclado.nextByte();
System.out.println(seleccion);
return seleccion;
}
Mi problema es que quiero que la clase "Principal" recoja el atributo "selección" de la clase "Menu", para seguir desarrollando el programa, algo tipo:
switch (seleccion) {
case 1:
System.out.println("A");
break;
case 2:
System.out.println("B");
break;
}
Dentro de la clase principal. No quiero una llamada al método desde la clase principal, sino desde la clase principal, acceder al valor que devuelve ese método. Seguro que es una tontería, pero no doy con la forma, muchas gracias.
Acabo de caer en la cuenta que al simplificar el código para la pregunta, olvidé ajustar correctamente los nombres de las clases/objetos, pero ese no es el problema, todo eso está bien y no hay problema con eso. Repito el código y lo pongo con el sangrado correcto para que resulte más sencillo de ver.
class Principal{
public static void main(String[] args) {
MenuAplicacion menu = new MenuAplicacion();
menu.menuInicial();
}
}
class MenuAplicacion {
byte menuInicial() {
teclado = new Scanner(System.in);
byte seleccion;
System.out.println("1 para análisis A");
System.out.println("2 para análisis B");
seleccion = teclado.nextByte();
System.out.println(seleccion);
return seleccion;
}
}
Código que quiero poner en la clase principal del programa:
switch (seleccion) {
case 1:
System.out.println("A");
break;
case 2:
System.out.println("B");
break;
}
La forma habitual de acceder desde una clase a un atributo de otra es crear un método "Get" que te devuelva su valor.
En tu caso, está casi hecho ya, porque ese método "menuInicial" se está comportando como un Get, devolviendo el valor de la variable "seleccion" (que realmente no es un atributo, sino una variable local, porque sólo existe dentro de ese método).
Por tanto, deberías hacer
switch ( menu.menuInicial() ) {
Duda resuelta, muchísimas gracias...llevaba con la tontería atascado demasiado tiempo...y ya tengo la siguiente duda xD
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)