Hola
Aquí dejo mi solución, En el enunciado no decía que agregase un segundo constructor con parámetros a las clases SalonCasa y CocinaCasa, pero se los tuve que agregar ya que si no, no podía compilar el código de la clase Casa al agregar su segundo constructor con parámetros, ya que lanzaba error.
Saludos!!
EJERCICIO
Define tres clases: Casa, SalonCasa y CocinaCasa. La clase SalonCasa debe tener como atributos numeroDeTelevisores (int) y tipoSalon (String) y disponer de un constructor que los inicialice a 0 y “desconocido”. La clase CocinaCasa debe tener como atributos esIndependiente (boolean) y numeroDeFuegos (int) y un constructor que los inicialice a false y 0. La clase Casa tendrá los siguientes atributos de clase: superficie (double), direccion (String), salonCasa (tipo SalonCasa) y cocina (tipo CocinaCasa). Define un constructor para la clase Casa que establezca a unos valores de defecto los atributos simples y que cree nuevos objetos si se trata de atributos objeto. Define otro constructor que reciba como parámetros la superficie, dirección y un objeto de tipo SalonCasa y otro de tipo CocinaCasa. Compila el código para comprobar que no presenta errores, y crea un objeto de tipo Casa usando el constructor que recibe parámetros. Ten en cuenta que antes tendrás que haber creado los objetos de tipo SalonCasa y CocinaCasa para poder pasárselos al constructor. Comprueba que el objeto Casa se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.
/** Curso Aprender a programar en java desde cero
* Pasar objetos como parámetros a un método o constructor Java
* Codigo CU00642B */
//Esta clase define el salon de una casa
public class SalonCasa{
private int numeroTelevisores;
private String tipoSalon;
// Constructor 1 Sin Parametros
public SalonCasa(){
numeroTelevisores = 0;
tipoSalon = "Desconocido";
}//Cierre del Constructor 1
//Constructor 2 Con parametros
public SalonCasa(int valorNumeroTelevisores, String valorTipoSalon){
numeroTelevisores = valorNumeroTelevisores;
tipoSalon = valorTipoSalon;
}//Cierre del constructor 2
/** Setters */
//Método para establecer el numero de televisores de una casa
public void setNumeroTelevisores (int valorNumeroTelevisores){
numeroTelevisores = valorNumeroTelevisores;
}//Cierer del Método
//Método para establecer el tipo de salon de una casa
public void setTipoSalon (String valorTipoSalon){
tipoSalon = valorTipoSalon;
}//Cierre del Método
/** Getters */
//Método para obtener el numero de televisores de una casa
public int getNumeroTelevisores(){return numeroTelevisores;}//Cierre del Método
//Método para obtener el tipo de salon de una casa
public String getTipoSalon(){return tipoSalon;}//Cierre del Método
}//Cierre de la clase
/** Curso Aprender a programar en java desde cero
* Pasar objetos como parámetros a un método o constructor Java
* Codigo CU00642B */
//Esta clase define la cocina de una casa
public class CocinaCasa{
private boolean esIndependiente;
private int numeroDeFuegos;
//Constructor 1 Sin Parametros
public CocinaCasa(){
esIndependiente = false;
numeroDeFuegos = 0;
}//Cierre del constructor
//Constructor 2 Con Parametros
public CocinaCasa (boolean valorEsIndependiente, int valorNumeroDeFuegos){
esIndependiente = valorEsIndependiente;
numeroDeFuegos = valorNumeroDeFuegos;
}//Cierre del constructor 2
/** Setters */
//Método para establecer si la cocina de la casa es independiente
public void setEsIndependiente (boolean valorEsIndependiente){
esIndependiente = valorEsIndependiente;
}//Cierre del Método
//Método para establecer el numero de fuegos de la cocina
public void setNumeroDeFuegos (int valorNumeroDeFuegos){
numeroDeFuegos = valorNumeroDeFuegos;
}//Cierre del Método
/** Getters */
//Método para obtener si la cocina es independiente
public boolean getEsIndependiente (){return esIndependiente;}//Cierre del Método
//Método para obtener el numero de fuegos de la cocina
public int getNumeroDeFuegos(){return numeroDeFuegos;}//Cierre del Método
}//Cierre de la clase
/** Curso Aprender a programar en java desde cero
* Pasar objetos como parámetros a un método o constructor Java
* Codigo CU00642B */
//Esta clase define a una casa
public class Casa {
private double superficie;
private String direccion;
private SalonCasa salon;
private CocinaCasa cocina;
//Constructor 1 Sin parametros
public Casa (){
superficie = 0;
direccion = "";
salon = new SalonCasa();
cocina = new CocinaCasa();
}//Cierre del constructor 1
//Constructor 2 Con parametros
public Casa (double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa){
superficie = valorSuperficie;
direccion = valorDireccion;
salon = new SalonCasa( objetoSalonCasa.getNumeroTelevisores(), objetoSalonCasa.getTipoSalon() );
cocina = new CocinaCasa( objetoCocinaCasa.getEsIndependiente(), objetoCocinaCasa.getNumeroDeFuegos() );
}//Cierre del Constructor 2
/** Setters */
//Método para establecer la superficie de la casa
public void setSuperficie (double valorSuperficie){
superficie = valorSuperficie;
}//Cierre del Método
//Método para establecer la direccion de la casa
public void setDireccion (String valorDireccion){
direccion = valorDireccion;
}//Cierre del Método
//Método para establecer el salon de la casa
public void SetSalon (SalonCasa objetoSalonCasa){
salon = objetoSalonCasa;
}//Cierre del Método
//Método para establecer la cocina de la casa
public void setCocina (CocinaCasa objetoCocinaCasa){
cocina = objetoCocinaCasa;
}//Cierre del Método
/** Getters */
//Método para obtener la superficie de la casa
public double getSuperficie(){return superficie;}//Cierre del Método
//Método para obtener la direccion de la casa
public String getDireccion(){return direccion;}//Cierre del Método
//Método para obtener el tipo de salon de la casa
public SalonCasa getSalon(){return salon;}//Cierre del Método
//Método para obtener el tipo de cocina de la casa
public CocinaCasa getCocina(){return cocina;}//Cierre del Método
}//Cierre de la clase