Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: eduardoc en 03 de Julio 2016, 06:33
-
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.
-
Buenas, Edu.
Respuesta A) Correcta.
Respuesta B)
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 (https://www.aprenderaprogramar.com/foros/index.php?topic=1964.msg9837#msg9837)
Respuesta C) Correcta.
Saludos.