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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema al crear objetos con método switch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al crear objetos con método switch  (Leído 3,756 veces)
Finishim

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Problema al crear objetos con método switch
« en: 13 Junio 2015, 02:49 am »

Hola gente, estoy haciendo un ejercicio en donde debo simular la recarga de un celular a través de una interfaz, tengo un menu con las opciones

1.- iniciar carga
2.- descontar saldo
3.- cargar saldo
4.- ver saldo actual

y dentro del case 1, (iniciar carga), debo asignarle una carga inicial, pero el problema es que cuando inicio la carga y luego quiero ver el saldo actual, este me muestra que la carga es 0, se me ocurre que debo tener un error al pasar el parámetro cargaInicial al objeto miCelular

aqui dejo lo que tengo echo, ojala alguien me eche una manito:

clase interfaz;

Código
  1. import java.util.Scanner;
  2. public class Interfaz
  3. {
  4.   private Scanner leer = new Scanner(System.in);
  5.   Celular miCelular = new Celular();
  6.    public void main()
  7.    {
  8.       int opcionFunciones;
  9.       int cargaInicial=0;
  10.      do{
  11.  
  12.          System.out.println("1.- Configurar carga inicial");
  13.          System.out.println("1.- Descontar saldo");
  14.          System.out.println("3.- Cargar saldo");
  15.          System.out.println("4.- Ver saldo actual");
  16.          opcionFunciones = leer.nextInt();
  17.          leer.nextLine();
  18.          switch(opcionFunciones)
  19.          {
  20.  
  21.              case 1:
  22.  
  23.                      do
  24.                      {
  25.                         System.out.println("Iniciar recarga");
  26.                         System.out.println("Ingrese cantidad inicial de carga");
  27.                         System.out.println("1.-  1000");
  28.                         System.out.println("2.-  2000");
  29.                         System.out.println("3.-  5000");
  30.  
  31.                          int opcion = leer.nextInt();
  32.                          leer.nextLine();
  33.                          switch(opcion)
  34.                          {
  35.                            case 1: cargaInicial=1000;
  36.                                    break;
  37.  
  38.                            case 2: cargaInicial=2000;
  39.                                    break;
  40.  
  41.                            case 3: cargaInicial=5000;
  42.                                    break;
  43.  
  44.                            default: System.out.println("Opcion invalida");
  45.  
  46.                          }          
  47.  
  48.                      }while(cargaInicial==0);
  49.                      miCelular.setSaldoInicial(cargaInicial);
  50.                      break;
  51.  
  52.              case 2:
  53.  
  54.                    System.out.println("Ingrese saldo a descontar");
  55.                    int dctoSaldo = leer.nextInt();
  56.                    leer.nextLine();
  57.  
  58.                    miCelular.Descontar(dctoSaldo);
  59.                    break;
  60.  
  61.              case 3:
  62.                      System.out.println("Ingrese saldo a cargar");
  63.                      int cargaSaldo = leer.nextInt();
  64.  
  65.                      miCelular.Cargar(cargaSaldo);
  66.                      break;
  67.  
  68.              case 4: System.out.println("Su saldo actual es: "+miCelular.getSaldoActual()+" pesos");
  69.                      break;
  70.  
  71.              case 5: System.out.println("opcion invalida");
  72.  
  73.  
  74.          }// Fin switch    
  75.        }while(opcionFunciones<4);
  76.  
  77.  
  78.   } // fin main
  79.  
  80.  
  81.  
  82. }  


Clase celular:

Código
  1. public class Celular
  2. {
  3.    private int SaldoInicial;
  4.    private int SaldoActual;
  5.  
  6.   public Celular()
  7.   {
  8.     SaldoInicial=0;
  9.     SaldoActual=0;
  10.   }
  11.  
  12.   public Celular(int SaldoInicial, int SaldoActual)
  13.   {
  14.     this.SaldoInicial=SaldoInicial;
  15.     this.SaldoActual=SaldoActual;
  16.   }
  17.  
  18.   public int getSaldoInicial()
  19.   {
  20.     return SaldoInicial;
  21.   }
  22.  
  23.   public int getSaldoActual()
  24.   {
  25.     return SaldoActual;
  26.   }
  27.  
  28.   public void setSaldoInicial(int SaldoInicial)
  29.   {
  30.     this.SaldoInicial=SaldoInicial;
  31.   }
  32.  
  33.   public void Cargar(int cantidadCarga)
  34.   {
  35.      SaldoActual = SaldoActual+cantidadCarga;
  36.   }
  37.  
  38.   public void Descontar(int descuentaSaldo)
  39.   {
  40.     SaldoActual = SaldoActual-descuentaSaldo;
  41.   }
  42.  
  43.  
  44. }


En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Problema al crear objetos con método switch
« Respuesta #1 en: 13 Junio 2015, 15:33 pm »

En la opción 1, llamas al método setSaldoInicial, que solo asigna un saldo inicial, pero no hace nada con saldoActual, por lo que éste queda en 0. El saldoActual se modifica cuando se llama al método cargar.

PD: Léete el hilo buenas prácticas en Java, que está con chincheta. Los métodos siempre utilizan camlCase.


En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Finishim

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Problema al crear objetos con método switch
« Respuesta #2 en: 13 Junio 2015, 19:33 pm »

En la opción 1, llamas al método setSaldoInicial, que solo asigna un saldo inicial, pero no hace nada con saldoActual, por lo que éste queda en 0. El saldoActual se modifica cuando se llama al método cargar.

PD: Léete el hilo buenas prácticas en Java, que está con chincheta. Los métodos siempre utilizan camlCase.

Hola Gus, interesante la guia, comenzaré a leerla.

Ahora respecto al ejercicio tienes razó, no estaba haciendo nada con ese metodo, ahora lo que se me ocurrio fue en esa misma linea iniciar un objeto con el método constructor con parametros, asi

Código
  1. Celular miCelular = new Celular(cargaInicial,cargaInicial);
  2.  break;

en donde el primer parametro corresponde a la carga inicial y el segundo a la carga actual, que vendría siendo la inicial a la vez, pero me sale un error en el case 2, al llamar al metodo Descontar

Código
  1. case 2:
  2.  
  3.                    System.out.println("Ingrese saldo a descontar");
  4.                    int dctoSaldo = leer.nextInt();
  5.                    leer.nextLine();
  6.  
  7.                    miCelular.Descontar(dctoSaldo);
  8.                    break;

dice que la variable miCelular no ha sido inicializada
En línea

robertofd1995

Desconectado Desconectado

Mensajes: 172


Ver Perfil
Re: Problema al crear objetos con método switch
« Respuesta #3 en: 14 Junio 2015, 11:57 am »

Hola Gus, interesante la guia, comenzaré a leerla.

Ahora respecto al ejercicio tienes razó, no estaba haciendo nada con ese metodo, ahora lo que se me ocurrio fue en esa misma linea iniciar un objeto con el método constructor con parametros, asi

Código
  1. Celular miCelular = new Celular(cargaInicial,cargaInicial);
  2.  break;

en donde el primer parametro corresponde a la carga inicial y el segundo a la carga actual, que vendría siendo la inicial a la vez, pero me sale un error en el case 2, al llamar al metodo Descontar

Código
  1. case 2:
  2.  
  3.                    System.out.println("Ingrese saldo a descontar");
  4.                    int dctoSaldo = leer.nextInt();
  5.                    leer.nextLine();
  6.  
  7.                    miCelular.Descontar(dctoSaldo);
  8.                    break;

dice que la variable miCelular no ha sido inicializada

Arriba veo un break y abajo el case 2 , switch solo ejecuta una de las opciones por lo que si inicializas el objeto en un caso no lo estas inicializando en todos los demas , y si lo que estas pensando es ponerlo en el default , el default es el caso que se ejecuta en caso de que ninguna de las otras opciones se haya dado , no quiere decir que se ejecute por defecto.

Mira a ver si es ese tu problema.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear objetos en ejecución
Programación Visual Basic
juampivicius 2 1,994 Último mensaje 16 Diciembre 2005, 19:46 pm
por Slasher-K
Crear Objetos en el WoW
Juegos y Consolas
folwker 1 3,846 Último mensaje 29 Junio 2009, 23:01 pm
por Artikbot
Problema al crear arreglos de objetos en C++
Programación C/C++
DarkSorcerer 2 8,295 Último mensaje 15 Septiembre 2013, 19:05 pm
por dato000
Llamar objetos desde un switch
Java
brianchatran 7 6,090 Último mensaje 5 Octubre 2018, 02:24 am
por MrSimpatia
Problema al momento de crear metodo static
Java
HARUDAY 4 4,742 Último mensaje 25 Febrero 2022, 15:37 pm
por sapito169
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines