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