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

Error al llamar metodo, resultados cero.

Estas en el tema de Error al llamar metodo, resultados cero. en el foro de Java en Foros del Web. Buen dia amigos: Tengo la siguiente clase: public class Boleto { private int numBoleto; private int numPasajero; private String fechaVuelo; private String destino; private int ...
  #1 (permalink)  
Antiguo 23/03/2008, 16:59
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 1 mes
Puntos: 1
Error al llamar metodo, resultados cero.

Buen dia amigos:
Tengo la siguiente clase:

public class Boleto
{
private int numBoleto;
private int numPasajero;
private String fechaVuelo;
private String destino;
private int precio;


public void setAsignoArgumentos (int nBoleto, int nPasajero, String fVuelo, String destiny, int precie)
{
numPasajero = nPasajero;
numPasajero = nPasajero;
fechaVuelo = fVuelo;
destino = destiny;
precio = precie;
}

public void setNumBoleto (int numBoleto) {numBoleto = numBoleto;}
public void setNumPasajero (int numPasajero) {numPasajero = numPasajero;}
public void setFechaVuelo (String fechaVuelo) {fechaVuelo = fechaVuelo;}
public void setDestino (String destino) {destino = destino;}
public void setPrecio (int precio) {precio = precio;}

public int getNumBoleto () {return numBoleto;}
public int getNumPasajero () {return numPasajero;}
public String getFechaVuelo () {return fechaVuelo;}
public String getDestino () {return destino;}
public int getPrecio () {return precio;}


public void imprimirBoleto ()
{
System.out.println("Tu boleto es:" + numBoleto);
System.out.println("Numero de Pasajero:" + numPasajero);
System.out.println("Fecha de Vuelo:" + fechaVuelo);
System.out.println("Destino:" + destino);
System.out.println("Costo:" + precio);
}
}

con el siguiente Main:

import javax.swing.JOptionPane;
public class TestBoleto
{

/** Creates a new instance of TestBoleto */
public TestBoleto() { }


public static void main(String[] args)
{
String pregunta = null;
String responde = null;
String fechaVuelo;
String destino;
String tipo = null;
int numBoleto = 0;
int numPasajero = 0;
String opcion = null;
int salida = 0;
int salida01;
int precio;

Boleto miBoleto = new Boleto ();
Object menu [] = { "Mexico", "Guadalajara", "Monterrey", "Hermosillo", "La Paz BCS" };
Object menu02 [] = { "Sencillo", "Doble" };
Object menu03 [] = { "Sí", "No" };

do
{
pregunta = (String)JOptionPane.showInputDialog( null, "Elija Destino", "Boletos", JOptionPane.QUESTION_MESSAGE, null,
menu, menu [0]);
destino = String.valueOf( pregunta );
System.out.println (destino);

opcion = (String)JOptionPane.showInputDialog( null, "Elija el Tipo", "Boletos", JOptionPane.QUESTION_MESSAGE, null,
menu02, menu02 [0]);
tipo = String.valueOf( opcion );
System.out.println(tipo);


pregunta = JOptionPane.showInputDialog(null,"Numero de Boleto:","Boletos", JOptionPane.QUESTION_MESSAGE);
numBoleto = Integer.parseInt(pregunta);
miBoleto.setNumBoleto(numBoleto);

System.out.println(numBoleto);

pregunta = JOptionPane.showInputDialog ( " Numero de Pasajero:");
numPasajero = Integer.parseInt(pregunta);
miBoleto.setNumPasajero(numPasajero);

System.out.println(numPasajero);

pregunta = JOptionPane.showInputDialog ( " Fecha del Vuelo:");
fechaVuelo = String.valueOf ( pregunta );
miBoleto.setFechaVuelo(fechaVuelo);

System.out.println(fechaVuelo);

pregunta = JOptionPane.showInputDialog ( "Costo del Boleto:");
precio = Integer.parseInt(pregunta);
miBoleto.setPrecio(precio);
System.out.println(precio);

miBoleto.imprimirBoleto();

salida01 = JOptionPane.showConfirmDialog( null,"Desea Continuar", "Compañia XYZ", JOptionPane.YES_NO_OPTION);

if ( salida01 == JOptionPane.YES_OPTION) {/*SELECIONO SI*/};


}
while ( salida == JOptionPane.NO_OPTION);

}
}

cuando mando llamar el metodo "imprimirBoleto" siempre me arroja en ceros o null los campos, en el main use un System.out.println (variable) para saber si estaba guardando los datos introducidos por el usuario lo cual dio positivo.

Gracias.
  #2 (permalink)  
Antiguo 23/03/2008, 17:27
 
Fecha de Ingreso: octubre-2006
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Error al llamar metodo, resultados cero.

Estan mal los métodos de asignación

public void setNumBoleto (int numBoleto)
{
numBoleto = numBoleto;
}
......
........
.........


Deben ser así:

public void setNumBoleto (int numBoleto)
{
this.numBoleto = numBoleto;
}

saludos!!
  #3 (permalink)  
Antiguo 23/03/2008, 22:06
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 1 mes
Puntos: 1
Re: Error al llamar metodo, resultados cero.

Gracias compañero, ya vi donde estaba el error, solo una pregunta mas cuando se usan los String tambien se puede usar el "this" o que se usa en estas circuntancias, ya que preferi cambiar los nombres porque estaba marcando error.

Gracias por la ayuda.


360.
  #4 (permalink)  
Antiguo 23/03/2008, 23:13
 
Fecha de Ingreso: octubre-2006
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Error al llamar metodo, resultados cero.

Siempre que tenga variables de miembro, es decir, aquellas que declara dentro de la clase pero fuera de cualquier método (p.e private String cadena) cuyos nombres sean iguales a los argumentos que recibe un método, debe usar this, de lo contrario, el hacer;

...
...
private int variable;
public void metodo(int variable)
{
variable = variable;
}

esta haciendo referencia a la variable local que esta como argumeto del método y NO a la variable miembro que tiene su ámbito en toda la clase y por esto mismo puede ser usada en cualquier parte de la clase, contrario a lo que sucede con la variable local, que solo puede ser usada dentro del métrodo donde fue declarada.

por lo cual, si hace:

this.variable = variable;

con this.variable se refiere a la variable "global" y con variable se refiere a la que es local.

Por ello, sin importar el tipo, debe hacerlo con this. Claro, cuando se traten de referencias a objetos, lo ideal seria clonarlos, pero ese es otro tema. (Referencias a objetos son p.e las matrices)

saludos!!
  #5 (permalink)  
Antiguo 25/03/2008, 19:32
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 1 mes
Puntos: 1
Re: Error al llamar metodo, resultados cero.

Gracias compañero!
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 05:18.