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

Varibles entre clases?

Estas en el tema de Varibles entre clases? en el foro de Java en Foros del Web. Saludos una ayuda, Digamos que tengo 3 clases... Clase 1 Clase 2 Clase principal En la clase principal declaro variables aleatorias String nombre; String apellido; ...
  #1 (permalink)  
Antiguo 06/04/2012, 14:43
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
Varibles entre clases?

Saludos una ayuda, Digamos que tengo 3 clases...
Clase 1
Clase 2
Clase principal

En la clase principal declaro variables aleatorias
String nombre;
String apellido;
String cedula;

en la clase 1 tengo un jFrame con un formulario basico, nombres, apellidos y cedulas, el cual al darle enviar guarda las varibles de esta manera:

principal a=new Principal();(Declaro el objeto que apunta a la clase)

a.nombre=jTextFiel1.getText();
a.apellido=jTextFiel2.getText();
a.cedula=jTextFiel3.getText();

y por ultimo en la clase 2, tengo varios jLabel's para utilizarlos como prueba para ver si la información se guardo, y los muestro de la siguiente manera:

principal a=new Principal();(Declaro el objeto que apunta a la clase)

jLabel1.setText(a.nombre);
jLabel2.setText(a.apellido);
jLabel3.setText(a.cedula);

Mi problema es, que no guarda los datos de los jtextfield en la clase1, solo me muestra los valores con los cuales inicialece las variables por defecto(En blanco)...
  #2 (permalink)  
Antiguo 09/04/2012, 08:42
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Varibles entre clases?

Desde luego si haces lo que tiene la segunda clase resultará que:

principal a=new Principal(); // Inicializas un objeto de clase principal (completamente vacío)
//resultado
jLabel1.setText(null);
jLabel2.setText(null);
jLabel3.setText(null);

Ya que a no tiene inicializado ninguna variable

Si tienes un constructor para principal tipo:
public Principal(String nombre, String apellido, String cedula) {
this.nombre = nombre;
this.apellido = apellido;
this.cedula = cedula;
}

Entonces deberias crear otro constructor para la clase 2 que incluya esas mismas variables, y desde el final de lo que tienes en la clase uno llamar al constructor de la clase 2, bien pasándole como parámetro el Principal anterior, bien las variables a.nombre, a.apellido y a.cedula.

Conclusión, para llamar a una clase pasándole parámetros, estos se les deben pasar en el constructor, o mediante un método (también conocido como setter).

Corolario 2: Si creas un objeto con un constructor por defecto y accedes a sus propiedades sin inicializar, éstas serán null siempre.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: clase, formulario, 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 16:28.