Autor Tema: ¿es posible que dos objetos apunten a la misma referencia en Java? CU00663B  (Leído 2169 veces)

eduardoc

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Buenas, voy a intentar responder a las preguntas del ejercicio CU00663B del manual para el aprendizaje de la programación Java desde cero, pero tengo muchas dudas al respecto. Gracias de antemano, saludos.

Edu.

EJERCICIO:
Considera una clase Java que se denomina TripulacionAvion y que tiene como atributos a tres objetos de tipo Persona: Persona piloto; Persona copiloto1; Persona copiloto2.

a) ¿Sería posible que al crear un objeto TripulacionAvion se produjera que piloto, copiloto1 y copiloto2 apuntaran a un mismo objeto, es decir, que existiera una relación de identidad entre los tres atributos?

Supongo que si, si los tres atributos fueran los mismos (la misma persona (objeto))

b) ¿Existiría relación de identidad cuando creemos un objeto TripulacionAvion entre los tres atributos si no se inicializaran en el constructor?

Al crear el objeto se "reservaría" un lugar en memoria pero sin contenido (null) hasta el momento por lo que creo que no existiría relación de identidad.

c) ¿Cuál sería el contenido de los atributos si no se inicializan en el constructor y creamos un objeto de tipo TripulacionAvion?

El contenido sería null.
« Última modificación: 10 de Julio 2016, 17:35 por Alex Rodríguez »

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:Ejercicio: (CU00663B) - Asignación de igualdad en Java.
« Respuesta #1 en: 03 de Julio 2016, 13:50 »
Buenas, Edu.

Respuesta A) Correcta.

Respuesta B)

Citar
Podemos decir que existe una identidad en null (situación especial). Conviene tener cuidado con esta respuesta.

null significa alguna de estas cosas: objeto declarado pero no inicializado, condición de terminación de una serie de objetos, el objeto no existe, el objeto no tiene un contenido definido, el contenido del objeto ha sido eliminado explícitamente estableciéndose a null.

En Java se cumple lo siguiente: null == null (en otros lenguajes no es así).

Por tanto si no se han inicializado piloto == copiloto1 resulta true y copiloto1 == copiloto2 también es true, y si consideramos que toda comparación con == que devuelve true implica una relación de identidad, sí habría relación de identidad. La identidad consistiría en "los tres objetos son el mismo objeto: null".

Hay que considerar null una situación especial de un objeto.

Explicación hecha por el experto y moderador global César Krall, puedes encontrarla aquí: https://www.aprenderaprogramar.com/foros/index.php?topic=1964.msg9837#msg9837

Respuesta C) Correcta.

Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".