Foros del Web » Programación para mayores de 30 ;) » Java »

Problema Con Variable En JAVA

Estas en el tema de Problema Con Variable En JAVA en el foro de Java en Foros del Web. Mi problema consiste en que tengo un menu, en una de las opciones me traslada a un metodo de la clase "Bodega", para poder agregar ...
  #1 (permalink)  
Antiguo 12/03/2012, 17:58
Avatar de yadderace  
Fecha de Ingreso: marzo-2012
Mensajes: 12
Antigüedad: 7 años, 8 meses
Puntos: 0
Problema Con Variable En JAVA

Mi problema consiste en que tengo un menu, en una de las opciones me traslada a un metodo de la clase "Bodega", para poder agregar un producto. Yo declaro una variable de clase "productosBodega" que guarda la cantidad de productos ingresados pero cuando la modifico en el método esta como que no guardara el valor. Porque cuando ejecuto nuevamente el metodo AgregarProducto, la variable tiene siempre el valor 0. Mi código es:

Código JAVA:
Ver original
  1. import java.util.Scanner;
  2.  
  3. public class Menu {
  4.  
  5.  
  6.  
  7. public static void main(String args[])
  8. {
  9. int opcion;
  10. opcion=0;
  11. Scanner leer=new Scanner(System.in);
  12.  
  13. do{
  14. System.out.println("Opciones Disponibles\n");
  15. System.out.println("[1]----Agregar Producto A Bodega");
  16. System.out.println("[2]----Comprar un Producto De Bodega");
  17. System.out.println("[3]----Salida de Programa");
  18. System.out.print("\nIngrese La Opción Que Desea Utilizar: ");
  19. opcion=leer.nextInt();
  20. switch(opcion){
  21. case 1:
  22. ElegirAgregar();
  23. break;
  24. case 2:
  25. ElegirComprar();
  26. break;
  27. case 3:
  28. ElegirSalir();
  29. break;
  30. default:
  31. System.out.println("Esta Opción No Existe");
  32. break;
  33. }
  34. }while (opcion!=3);
  35. }
  36.  
  37. public static void ElegirAgregar()
  38. {
  39. Bodega producto=new Bodega();
  40. producto.AgregarProducto();
  41. }
  42. }

Y la clase Bodega es:

Código JAVA:
Ver original
  1. import java.util.Scanner;
  2.  
  3.  
  4. public class Bodega {
  5.  
  6. private String codigos[]=new String[20];//Guarda los códigos de los productos
  7. private String nombres[]=new String[20];//Guarda el nombre de los productos
  8. private int cantidades[]=new int[20];//Guarda las cantidades existentes del producto
  9. private float unitarios[]=new float[20];//Guarda el Precio Unitario
  10. private int productosBodega;//Guarda el numero de productos que hay en bodega
  11.  
  12.  
  13. public void AgregarProducto(){
  14.  
  15. Scanner leer=new Scanner(System.in);
  16. String codigo,nombre;
  17. char respuesta,condicion;
  18. int cantidadProd,N;//N manejara tambien la cantidad de productos que habran en bodega.
  19. float precioUnit;
  20.  
  21. System.out.println("Ingrese El Código Del Producto: ");
  22. codigo=leer.nextLine();
  23. System.out.println ("Ingrese El Nombre Del Producto: ");
  24. nombre=leer.nextLine();
  25. System.out.println("Ingrese La Cantidad En Bodega De Este Producto");
  26. cantidadProd=leer.nextInt();
  27. System.out.println("Ingrese El Precio Unitario De Cada Producto");
  28. precioUnit=leer.nextFloat();
  29.  
  30. N=productosBodega;
  31. codigos[N]=codigo;
  32. nombres[N]=nombre;
  33. cantidades[N]=cantidadProd;
  34. unitarios[N]=precioUnit;
  35. productosBodega++;
  36.  
  37. }
  38. }


Porfavor hechenme una manita alli...
  #2 (permalink)  
Antiguo 12/03/2012, 19:38
Avatar de afrika026  
Fecha de Ingreso: junio-2011
Mensajes: 85
Antigüedad: 8 años, 5 meses
Puntos: 19
Respuesta: Problema Con Variable En JAVA

El problema es el siguiente:

Cuando vos seleccionas en el menu la opcion 1 que es la de "agregar productos a bodega" estas ejecutando el metodo ElegirAgregar().
Pero el error esta en el codigo que se encuentra en ese metodo.
Como se puede observar, cada vez que se invoca al metodo ElegirAgregar(), estas creando el mismo objeto "producto" borrando por ende el anterior creado, entonces la variable "productosBodega" siempre va a tener el valor de cero.
Por lo tanto la solucion seria la siguiente:

Bodega producto=new Bodega(); Esta linea la colocas antes de la sentencia "do", por supuesto esta linea la borras del metodo ElegirAgregar();
  #3 (permalink)  
Antiguo 17/03/2012, 11:47
 
Fecha de Ingreso: marzo-2012
Ubicación: Madrid
Mensajes: 74
Antigüedad: 7 años, 8 meses
Puntos: 12
Respuesta: Problema Con Variable En JAVA

Yo creo que el problema es que la variable "productosBodega" deberias declararla estatica, eso es lo que hace que sea una variable de clase. Tal y como esta declarada es una variable de objeto, y como apunta Afrika026, cada vez que creas un objeto Bodega, ese objeto tiene su propia instancia de la variable.

Etiquetas: clase, jar, programa, string, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:53.