Autor Tema: Java. Diferencia de igualdad e identidad cuándo un objeto es nulo BlueJ CU00663B  (Leído 2208 veces)

LuisM

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 131
    • Ver Perfil
Hola a todos !! Paso a responder las preguntas del ejercicio CU00663B del curso básico de programación Java con entorno de aprendizaje BlueJ. Desde ya muchas gracias.

Saludos

Luis

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?


Respuesta: Si. Por ejemplo, tenemos que asignar a los objetos: personaCopiloto1 y personaCopiloto2 el valor de personaPiloto

Código: [Seleccionar]
public class TripulacionAvion
{
    // instance variables
    private Persona personaPiloto;
    private Persona personaCopiloto1;
    private Persona personaCopiloto2;

        public TripulacionAvion()
    {
        // initialise instance variables
        personaPiloto = new Persona();
        personaCopiloto1 = personaPiloto;
        personaCopiloto2 = personaPiloto;
    }
}

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

Respuesta: No, son 3 referencias distintas a 3 objetos distintos aunque son creados de la misma clase (Persona)

Código: [Seleccionar]
public class TripulacionAvion
{
    // instance variables
    private Persona personaPiloto;
    private Persona personaCopiloto1;
    private Persona personaCopiloto2;

        public TripulacionAvion()
    {
        // initialise instance variables
        personaPiloto = new Persona();
        personaCopiloto1 = new Persona();
        personaCopiloto2 = new Persona();
    }
}

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

Respuesta: cuando no se inicializan en el contructor sus valores son nulos, caso que debemos evitar inicializando los atributos.
« Última modificación: 22 de Junio 2017, 18:04 por Alex Rodríguez »

LuisM

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 131
    • Ver Perfil
Re:Ejercicio CU00663B
« Respuesta #1 en: 29 de Mayo 2017, 20:28 »
En la respuesta a) es mejor así?
Código: [Seleccionar]
public class TripulacionAvion
{
    // instance variables
    private Persona personaPiloto;
    private Persona personaCopiloto1;
    private Persona personaCopiloto2;

        public TripulacionAvion()
    {
        // initialise instance variables
        personaPiloto = new Persona();
        personaCopiloto1 = new Persona();
        personaCopiloto2 = new Persona();
        personaCopiloto1 = personaPiloto;
        personaCopiloto2 = personaPiloto;
    }
}

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Ejercicio CU00663B
« Respuesta #2 en: 31 de Mayo 2017, 09:45 »
Buenas Luis.

Tus repuestas son correctas, aún así te dejo un enlace donde se da una explicación más extensa a las dos últimas preguntas.

https://www.aprenderaprogramar.com/foros/index.php?topic=1964.msg9837#msg9837

Saludos. ;D

 

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