Autor Tema: Java signficado de null en igualdad Referencias a objetos. Ejercicio CU00663B  (Leído 2314 veces)

Chompy129

  • Intermedio
  • ***
  • Mensajes: 130
  • Programar es divertido. :)
    • Ver Perfil
Asignación de igualdad en Java. Referencias a objetos. Diferencia entre igualdad e identidad. (CU00663B)

Aquí les dejo el ejercicio CU00663B del tutorial de programación Java desde cero:

ENUNCIADO
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?

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

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


RESPUESTAS

a) No. Cada uno apunta a un objeto distinto.

b) No. Aun no apuntan a un objeto, porque no han sido creados.

c) Seria null, en cada uno de ellos



Link de la clase: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=629:asignacion-de-igualdad-en-java-referencias-a-objetos-diferencia-entre-igualdad-e-identidad-cu00663b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

« Última modificación: 21 de Diciembre 2016, 19:42 por Alex Rodríguez »

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Re:Java. Asignacion de igualdad. Referencias a objetos. Ejercicio CU00663B
« Respuesta #1 en: 17 de Diciembre 2016, 02:23 »
hola.

La respuesta a) sería incorrecta.Sí puede existir una relacion de identidad entre los tres atributos haciendo una asignacion así:

piloto = copiloto1;
copiloto2 = copiloto1;


La respuesta b) también sería incorrecta.
Cesar Krall dio una muy buena respuesta a esta pregunta:
Citar
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.

La c) la tienes bien

Un saludo

Chompy129

  • Intermedio
  • ***
  • Mensajes: 130
  • Programar es divertido. :)
    • Ver Perfil
Re:Java. Asignacion de igualdad. Referencias a objetos. Ejercicio CU00663B
« Respuesta #2 en: 17 de Diciembre 2016, 06:04 »
De todas formas creo que en la respuesta a) es correcta, no hay relación de identidad entre ellos. Sin embargo, como dices, si que puede existir una relación al hacer esa asignación

En la respuesta b) pues si que hay relación después de todo. Gracias por aclarar eso.

Gracias por revisar la actividad ESOJ. ;D
También te envió un saludo.  ;)

 

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".