La asignacion de objetos en java tiene una gran observacion que hay que tener en cuenta , este tema muy sencillo puede crear un gran problema al momento de programar
veamos el siguiente ejemplo.
/////////////////////// primera clase //////////////////////
public class numero {
public int i;
public numero() {
}
}
//////////////////////////////////////////////////////////
// la asignacion de tipos primitivos es muy sencilla puesto y directa ,
// dado que alberga el valor actual y no se utiliza referencias de objetos ,
// cuando se asignan primitivos se copian los contenidos de un sitio a otro.
public class asignacion {
public asignacion() {
}
public static void main(String[] jorge){
numero n1=new numero();
numero n2=new numero();
n1.i=1;
n2.i=2;
System.out.println("n1.i :"+n1.i+", n2.i:"+n2.i);
n1=n2;
// no se copian los valores , sino las referencias del objeto
System.out.println("n1.i :"+n1.i+", n2.i:"+n2.i);
n1.i=27;
//en este momento realmente estamos modificando el n2
// puesto que la referencia de n1 se perdio y apunta a n2
System.out.println("n1.i :"+n1.i+", n2.i:"+n2.i);
// supuestamente tendria que salir
//n1.i: 27 , n2.i:2
// pero sorpresa
}
}
Salida :
n1.i :1, n2.i:2
n1.i :2, n2.i:2
n1.i :27, n2.i:27
bueno si no soy muy claro , pueden hacer un seguimiento del ejemplo y solos se daran cuenta del problema de asignacion
martes, 29 de abril de 2008
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario