En esta clase, no declare los atributos de clase como private debido a que cuando se crea un objeto tipo Casa con los parametros
(int valorNumeroDeTelevisores, String valorTipoSalon) inicializados en el constructor 2 de la clase Casa, el compilador rechaza la accion
por estar estos atributos declarados private, lo que impide que el valor que se les da a estos atributos pertenecientes también al campo tipo objeto
(nuevoSalonCasa) de la clase Casa, no se almacenen como valor del atributo y por ende tampoco se observa el cambio al hacer "Inspect" sobre un objeto tipo casa y luego "Inspect"
sobre un campo tipo objeto (nuevoSalonCasa)
Clase SalonCasa
public class SalonCasa{
int numeroDeTelevisores;
String tipoSalon;
//Constructor general
public SalonCasa(){
numeroDeTelevisores = 0;
tipoSalon = "Desconocido";
}
//setters
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){numeroDeTelevisores = valorNumeroDeTelevisores;}
public void setTipoSalon(String valorTipoSalon){tipoSalon = valorTipoSalon;}
//getters
public int getNumeroDeTelevisores(){return numeroDeTelevisores;}
public String getTipoSalon(){return tipoSalon;}
}
Clase CocinaCasa
public class CocinaCasa{
private boolean esIndependiente;
private int numeroDeFuegos;
//Constructor general
public CocinaCasa(){
esIndependiente = false;
numeroDeFuegos = 0;
}
//setters
public void setEsIndependiente(boolean valorEsIndependiente){esIndependiente = valorEsIndependiente;}
public void setNumeroDeFuegos(int valorNumeroDeFuegos){numeroDeFuegos = valorNumeroDeFuegos;}
//getters
public boolean getEsIndependiente(){return esIndependiente;}
public int getNumeroDeFuegos(){return numeroDeFuegos;}
}
Clase Casa
public class Casa{
private double superficie;
private String direccion;
private SalonCasa nuevoSalonCasa;
private CocinaCasa nuevaCocinaCasa;
//Constructor 1 (general)
public Casa(){
superficie = 0.0;
direccion = "Desconocida";
nuevoSalonCasa = new SalonCasa();
nuevaCocinaCasa = new CocinaCasa();
}
//Constructor 2 (inicializado)
public Casa(double valorSuperficie , String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa,
int valorNumeroDeTelevisores, String valorTipoSalon){
superficie = valorSuperficie;
direccion = valorDireccion;
nuevoSalonCasa = new SalonCasa();
nuevaCocinaCasa = new CocinaCasa();
nuevoSalonCasa.numeroDeTelevisores = valorNumeroDeTelevisores;
nuevoSalonCasa.tipoSalon = valorTipoSalon;
}
//setters para atributos simples de la clase Casa
public void setSuperficie(double valorSuperficie){superficie = valorSuperficie;}
public void setDireccion(String valorDireccion){direccion = valorDireccion;}
//setters para los atributos simples de los objetos tipo SalonCasa dentro de la clase Casa
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){nuevoSalonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);}
public void setTipoSalon(String valorTipoSalon){nuevoSalonCasa.setTipoSalon(valorTipoSalon);}
//setters para los atributos simples de los objetos tipo CocinaCasa dentro de la clase Casa
public void setNumeroDeFuegos(int valorNumeroDeFuegos){nuevaCocinaCasa.setNumeroDeFuegos (valorNumeroDeFuegos);}
public void setEsIndependiente(boolean valorEsIndependiente){nuevaCocinaCasa.setEsIndependiente(valorEsIndependiente);}
}
Salu2