Hola Javieerg!
Estuve revisando tu ejercicio y lo veo muy bien !
Simpelmente hacerte algunas observaciones :
Respecto del Constructor con parámetros...
Sería más práctico inicializar los campos superficie y direccion a valores por defecto. De esta manera este constructor nos quedaría:
public Casa() {
superficie = 0;
direccion = "";
salonCasa = new SalonCasa();
cocinaCasa = new CocinaCasa();
}
Respecto de los métodos setSalon...
public void setSalon(SalonCasa objetoSalonCasa) {salonCasa = objetoSalonCasa;}
Está perfecto como está codificado, hace lo que que debe hacer.
Sin embargo quisiera mostrarte una alternativa distinta de codificación de este método:
public void setSalon(SalonCasa objetoSalonCasa) {
salonCasa.setNumeroDeTelevisores(objetoSalonCasa.getNumeroDeTelevisores());
salonCasa.setTipoSalon(objetoSalonCasa.getTipoSalon());
}
Esta forma de codificar el método setSalon también realiza lo que se pide en el ejercicio.
Nos podríamos plantear la siguiente pregunta ¿ambas formas son equivalentes? ¿es indistinto codificar de una manera o de otra?... tomémonos un tiempo para pensarlo y analizarlo.
La respuesta es que si bien ambas formas de codificación resuelven en nuestro caso particular el ejercicio que se plantea en la lección, hay diferencia entre una y otra forma.
Fíjate en lo siguiente: de la manera en que lo planteaste tu, lo que hacemos es asignarle al campo salon Casa, la referencia del objeto objetoSalonCasa. Por lo tanto si se realizara cualquiera modificación al objeto objetoSalonCasa, esas modificaciones se verían reflejadas cuando consultemos el objeto salonCasa (y viceversa) ¿ por qué? porque salonCasa apunta a objetoSalonCasa, eso es lo que realiza la asignación: una asignación de referencias.
Ahora bien, si analizamos la segunda forma de codificar, vemos que el método lo que hace es asignar a los campos del objeto salonCasa, los valores de los campos del objeto objetoSalonCasa. Pero ambos objetos siguen siendo independientes. Tanto salonCasa como objetoSalonCasa referencian lugares de memorias distintos.
Todo lo dicho es aplicable también al método método setCocina.
Analízalo, y cualquier consulta estamos aqui para reveerlo.