Tema: Duda objetos
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/06/2013, 14:33
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 17 años
Puntos: 260
Sonrisa Respuesta: Duda objetos

Hola,

El problema es que guardas una referencia a un objeto y por lo tanto, cuando cambie el contenido del objeto se va reflejar en todos lados.

Es como decir que tienes un carro azul compartido con alguien, los dos ven que el carro es de color azul, pero si tu lo pintas de color rojo, todos lo van a ver de color rojo. Lo mismo sucede aquí, el objeto 'a' ...

Código:
Documento m = new Documento(a);
... está referenciado por todos los objetos de la clase Documento, ...

Código:
this.codigo = cod;
... cuando cambie cod porque quisiste que fuera el mismo objeto para reutilizarlo ...

Código:
this.numero = this.numero+1;
... todas las referencias van a ver que aumento en uno.

Código:
doc2
doc2
...
La única forma de corregirlo es que no guardes una referencia a un objeto que después vas a modificar y esperabas que mantuviera el valor anterior. Es decir, eso no es reutilizar un componente, porque mantiene un 'estado' que es único para cada objeto.

Saludos,