Hola javalopez:
Creo no aclaré (y pido disculpas por ello), es que en este "ejercicio bis" tanto la clase SalonCasa como la clase CocinaCasa quedaban exactamente iguales a lo que publicaste, lo único que cambiaba era el Constructor con parámetros de la clase Casa que es a donde apuntaba mi pregunta.
Paso a explicar la diferencia para que lo analices:
Constructor con parámetros de la clase Casa (original)
public Casa(double valorSuperficie,String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa){
superficie=valorSuperficie;
direccion=valorDireccion;
salonCasa=new SalonCasa(objetoSalonCasa.getNumeroDeTelevisores(),objetoSalonCasa.getTipoSalon());
cocinaCasa=new CocinaCasa(objetoCocinaCasa.getEsIndependiente(), objetoCocinaCasa.getNumeroDeFuegos());
}
Constructor con parámetros de la clase Casa (modificado)
public Casa(double valorSuperficie,String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa){
superficie=valorSuperficie;
direccion=valorDireccion;
salonCasa= objetoSalonCasa;
cocinaCasa= objetoCocinaCasa;
la diferencia si te fijas bien, está en la asignación que le hacemos a los campos de instancia tipo objeto, que son salonCasa y cocinaCasa.
El Constructor recibe entre otros parámetros, un objeto llamado objetoSalonCasa, y en la siguiente línea (del Constructor original):
salonCasa=new SalonCasa(objetoSalonCasa.getNumeroDeTelevisores(),objetoSalonCasa.getTipoSalon());
al campo de instancia salonCasa se le asigna un nuevo objeto. ¿Cómo sé que se le asigna un nuevo objeto? porque después del signo '=' fíjate que se utiliza la sentencia new y se le pasan todos los parámetros necesarios para que el constructor de la clase SalonCasa instancie un nuevo objeto.
(lo mismo sucede con el campo de instancia cocinaCasa).
Ahora bien, en el Constructor modificado, la asignación que se hace al campo de instancia salonCasa es la siguiente:
salonCasa= objetoSalonCasa;
como vemos, no se instancia un nuevo objeto (no aparece la sentencia new). Lo que se hace es asignarle la referencia del objeto objetoSalonCasa a salonCasa.
Vale decir que luego de esta asignación salonCasa apuntará al mismo objeto que apunta objetoSalonCasa. Entonces: no creamos un nuevo objeto sino que al objeto objetoSalonCasa lo referenciamos (lo apuntamos) tanto con objetoSalonCasa, como con salonCasa.
Como conclusión:
Con el Constructor original, finalmente tendremos dos objetos: un objeto objetoSalonCasa y otro objeto salonCasa, ambos objetos serán tipo SalonCasa.
Con el Constructor modificado, solo tendremos un solo objeto pero referenciado con dos referencias: objetoSalonCasa y salonCasa. Las dos referencias hacen alusión al mismo objeto tipo SalonCasa.
Analízalo y culaquier duda acá estamos para ayudarte.
(Antes de finalizar el post, temo haberme adelantado con esta pregunta que te hice a temas que tal vez aún no hayas visto en el curso respecto de "referencia de objetos". Si es así, dejamos esto pendiente y volvemos sobre ello más adelante).