es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué una segunda referencia a un objeto no altera el contenido en Java?

En el siguiente código, he creado 3 instancias de la clase Movie. He asignado datos a los tres objetos. En segundo lugar, he creado una segunda referencia al objeto movie1 (movie4). También he asignado valores a los atributos de movie4.
Imprimí los nuevos atributos de movie1 pero el contenido no ha sido alterado. ¿Por qué sucede esto? ¿Cuál es la razón exacta? Sé otras formas de actualizar el contenido, pero quiero saber por qué la segunda referencia no funciona.
El contenido de movie1 sigue siendo el mismo. ¿Por qué?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La razón por la cual el contenido de movie1 no se modifica incluso después de crear una segunda referencia al objeto movie1 (movie4) y modificar sus atributos, es que cuando asignamos movie1 a movie4, se creó una copia de su referencia y se asignó a movie4. Las dos variables (movie1 y movie4) están entonces apuntando al mismo objeto en memoria. Sin embargo, cuando creamos un nuevo objeto con la declaración movie4 = new Movie("El Retorno del Rey", 2003, 8.9);, hicimos que movie4 apunte a una ubicación diferente en memoria. Esto significa que movie1 todavía apunta al objeto original mientras que movie4 apunta a un nuevo objeto. Por lo tanto, la modificación de los atributos del nuevo objeto (movie4) no afecta al objeto original (movie1). Si queremos cambiar los atributos del objeto original (movie1), debemos modificarlos directamente o a través de su referencia (movie1), no a través de una referencia diferente (movie4).

Comments are closed.