Comprender la diferencia entre una referencia y una instancia.
Debe analizar el siguiente programa, en el cual se asigna a dos referencia, una misma instancia de la clase Loro.
public class PruebaLoro{ public static void main(String arg[]){ Loro elLoro = new Loro( );// Se crea un nuevo Loro Loro elMismoLoro = elLoro; //note que se le asigna a 2 referencias la misma instancia de Loro elLoro.hable(); elMismoLoro.hable(); elLoro.bautizar("Pepito"); // Se cambia el nombre a la instancia a la que se refiere elLoro elLoro.hable(); // La instancia fue cambiada elMismoLoro.hable();//IMPORTANTE: note la salida a pantalla de esta operación. System.exit(0); } } |
Analice los resultados mostrados por el programa y discuta lo que ha observado
en esa salida.
Note que aunque se tienen dos referencias, la instancia es solamente una. La referencia es una variable que guarda "la dirección" de la instancia a la que le "apunta". En esta caso anto la referencia "elLoro" como "elMismoLoro" se refieren a la misma y única instancia que fue creada utilizando "new".
Por lo tanto si utilizando una referencia cambio la instancia, al utilizar la otra referencia me doy cuenta que el objeto ha cambiado. Hay que tener cuidado de no confundir ambos conceptos. Haciendo una analogía entre un objeto cualquiera y una casa se puede ver que no es lo mismo "la dirección de una casa" que "la casa".