elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Invocar metodos desde switch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Invocar metodos desde switch  (Leído 10,743 veces)
Finishim

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Invocar metodos desde switch
« en: 30 Abril 2015, 03:58 am »

Estimados, tengo una duda:

 Tengo una estructura de control como switch con varias opciones, en donde la opcion 1 me permite guardar datos enteros y de tipo String, y que en la opción 2 del menú permita mostrar esos guardados en el case 1

ej: menu
      "1) ingresar datos"
      "2) mostrar datos"

para ingresar datos en el case 1 tengo el siguiente codigo:

Código
  1.   Scanner lector=new Scanner(System.in);
  2.        Persona persona=new Persona();
  3. switch(op){
  4.  
  5.  
  6.            case 1:   System.out.println("Ingrese nombre");
  7.                      String nombre=lector.nextLine();
  8.                      persona.setNombre(nombre);
  9.  
  10.                      System.out.println("Ingrese edad");
  11.                      int edad=lector.nextInt();
  12.                      persona.setEdad(edad)
  13.                      break;

 y para mostrar tengo lo siguiente:
Código
  1.   case 2:    System.out.println("edad:"+persona.getEdad());
  2.              System.out.println("nombre:"+persona.getNombreCompleto());
  3.                      break;
  4.  

Cuando quiero mostrar los datos, este solo me imprime los campos edad y nombre, pero no el contenido que supuestamente he guardado en el case 1, eso me hace pensar que debo tener un error en las llamadas, o esta mal implementada las llamadas ?

el codigo de la clase:
Código
  1.  
  2. public Persona ()
  3.  
  4.    {
  5.        nombre= "";
  6.        edad=0;
  7.    }
  8.  
  9.    public Persona (String nombre, int edad)
  10.    {
  11.        this.nombre=nombre;
  12.        this.edad = edad;
  13.    }
  14.  
  15. public void setNombre(String nombre)
  16.    {
  17.       this.nombre=nombre;
  18.    }
  19.  
  20.    public void setEdad(int edad)
  21.    {
  22.       this.edad = edad;
  23.    }
  24.  
  25. public String getNombre()
  26.    {
  27.        return nombre;
  28.    }
  29.  
  30.    public int getEdad()
  31.    {
  32.        return edad;
  33.    }

agradecería cualquier orientación a alguna posible solución


« Última modificación: 30 Abril 2015, 19:50 pm por Finishim » En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: Invocar metodos desde switch
« Respuesta #1 en: 30 Abril 2015, 04:08 am »

Intenta hacerlo de esta forma, en el case 1:
Código
  1. case 1:   System.out.println("Ingrese nombre");
  2.     String nombre=lector.nextLine();
  3.     persona.setNombre(nombre);
  4.  
  5.     System.out.println("Ingrese edad");
  6.     int edad=Integer.parseInt(lector.nextLine());
  7.     persona.setEdad(edad)
  8.     break;
  9.  


En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: Invocar metodos desde switch
« Respuesta #2 en: 30 Abril 2015, 04:13 am »

Creo que entendí mal tu pregunta,

No veo ningún método llamado
Código:
getNombreCompleto()
en la clase Persona, quizás si intentas con
Código:
getNombre()
debería funcionar.

PD: Quizás si muestras un poco mas tu code podría ayudarte.
En línea

Finishim

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Invocar metodos desde switch
« Respuesta #3 en: 30 Abril 2015, 19:14 pm »

Aqui tengo el code con mas detalles:

Código
  1. do{
  2.        System.out.println("---M E N U---");
  3.        System.out.println("1) Ingesa datos");
  4.        System.out.println("2) Mostrar datos");
  5.        System.out.println("3) Salir");
  6.        op = lector.nextInt();
  7.        System.out.flush();
  8.        Scanner lector=new Scanner(System.in);
  9.        Persona persona=new Persona();
  10.  
  11.          switch(op){
  12.  
  13.            case 1:   System.out.println("Ingrese nombre");
  14.                      String nombre=lector.nextLine(); // aqui deberia guardar el dato
  15.                      persona.setNombre(nombre);  // y aqui pasarselo al metodo set para despues ser mostrado, o no?
  16.  
  17.                      System.out.println("Ingrese edad");
  18.                      int edad=lector.nextInt();  // guardamos
  19.                      persona.setEdad(edad);   // pasamos a setEdad
  20.                      break;
  21.  
  22.  
  23.  
  24.           case 2:    System.out.println("edad:"persona.getEdad());
  25.                      System.out.println("nombre:"persona.getNombre());
  26.                      break;
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                }
  34.      }  while(op<=3);

En el case 2 supuestamente  deberia llamar a los metodos get para mostrar la info pero no lo hace  y solo muestra los campos edad y nombre imprimidos en el systemout.prinltn, y no muestra nada

Y la clase:

Código
  1. public class Persona
  2. {
  3.    private String nombre;
  4.    private int edad;
  5.  
  6.    public Persona ()
  7.  
  8.    {
  9.        nombre= "";
  10.        edad=0;
  11.    }
  12.  
  13.    public Persona (String nombre, int edad)
  14.    {
  15.        this.nombre=nombre;
  16.        this.edad = edad;
  17.    }
  18.  
  19.    public void setNombre(String nombre)
  20.    {
  21.        this.nombre=nombre;
  22.    }
  23.  
  24.    public void setEdad(int edad)
  25.    {
  26.       this.edad = edad;
  27.    }
  28.  
  29.    public String getNombre()
  30.    {
  31.        return nombre;
  32.    }
  33.  
  34.    public int getEdad()
  35.    {
  36.        return edad;
  37.    }
  38. }
  39.  
« Última modificación: 30 Abril 2015, 19:45 pm por Finishim » En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: Invocar metodos desde switch
« Respuesta #4 en: 30 Abril 2015, 19:22 pm »

En el case 2 intenta poniendo esto:

Código
  1. case 2:    System.out.println("edad:"+persona.getEdad());
  2.                      System.out.println("nombre:"+persona.getNombre());
  3.                      break;
  4.  

Seguro, que estas haciéndolo como estoy creyendo, puedes mostrar la clase completa? please
« Última modificación: 30 Abril 2015, 19:25 pm por PabloPbl » En línea

Finishim

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Invocar metodos desde switch
« Respuesta #5 en: 30 Abril 2015, 19:53 pm »

En el case 2 intenta poniendo esto:

Código
  1. case 2:    System.out.println("edad:"+persona.getEdad());
  2.                      System.out.println("nombre:"+persona.getNombre());
  3.                      break;
  4.  

Seguro, que estas haciéndolo como estoy creyendo, puedes mostrar la clase completa? please

pablo, asi mismo como dices lo tengo en el case 2, ahora modifique el post de arriba que lo tenía como cltNuevo, que era de otro codigo. Lo tenia como dices pero no anda, que clase quieres que muestre ? la del void main ?? por que la clase persona es todo lo que hay alli

Código
  1. import java.util.Scanner;
  2. public class interfaz
  3. {
  4.    private static Scanner lector=new Scanner(System.in);
  5.  
  6.    public static void main ()
  7.    {
  8.        int op=0; int i=0;
  9. do{
  10.        System.out.println("---M E N U---");
  11.        System.out.println("1) Ingesa datos");
  12.        System.out.println("2) Mostrar datos");
  13.        System.out.println("3) Salir");
  14.        op = lector.nextInt();
  15.        System.out.flush();
  16.        Scanner lector=new Scanner(System.in);
  17.        Persona persona=new Persona();
  18.  
  19.          switch(op){
  20.  
  21.            case 1:   System.out.println("Ingrese nombre");
  22.                      String nombre=lector.nextLine(); // aqui deberia guardar el dato
  23.                      persona.setNombre(nombre);  // y aqui pasarselo al metodo set para despues ser mostrado, o no?
  24.  
  25.                      System.out.println("Ingrese edad");
  26.                      int edad=lector.nextInt();  // guardamos
  27.                      persona.setEdad(edad);   // pasamos a setEdad
  28.                      break;
  29.  
  30.  
  31.  
  32.           case 2:    System.out.println("edad:"persona.getEdad());
  33.                      System.out.println("nombre:"persona.getNombre());
  34.                      break;
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.                }
  42.      }  while(op<=3);
  43. }
  44. }
En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: Invocar metodos desde switch
« Respuesta #6 en: 30 Abril 2015, 20:49 pm »

No pongas el objeto persona que creas dentro del ciclo, por que si no cada vez que  ejecute el ciclo se creara un objeto nuevo.

Ponlo dentro del main, pero, no dentro del ciclo.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] invocar metodo desde metodo.
Python
Hesp 2 7,387 Último mensaje 8 Marzo 2009, 00:38 am
por Hesp
Desde excel se puede invocar un web service y llamarlo desde VB
Programación Visual Basic
olve 0 3,775 Último mensaje 28 Enero 2010, 17:04 pm
por olve
Invocar metodo javascript desde Applet
Java
mapers 0 2,481 Último mensaje 5 Septiembre 2013, 23:22 pm
por mapers
[Resuelto] Invocar JS desde PHP
PHP
danny920825 8 3,532 Último mensaje 26 Abril 2017, 22:04 pm
por danny920825
Problema a la hora de invocar otras clases desde la clase principal
Java
Silver1101 5 5,225 Último mensaje 20 Septiembre 2017, 20:02 pm
por Silver1101
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines