Hola German_i23, yo he escrito otro código, he visto el tuyo y creo, dentro de mi ignorancia que esta bien. Lo único, yo cambiaría el nombre de las clases por la primera en mayusculas, pues te sera mas fácil identificar, por lo menos para mi. (private saloncasa saloncasa1;)
Pero yo lo he hecho de otro modo, el resultado me da bueno pero no se si lo habré hecho bien, a ver si hay alguno que nos pueda corregir en el caso de que nos haga falta.
Código CocinaCasa
public class CocinaCasa{
private boolean esIndependiente;
private int numeroDeFuegos;
public CocinaCasa(){
esIndependiente=false;
numeroDeFuegos=0;
}
public void setEsIndependiente(boolean valorEsIndependiente){
esIndependiente=valorEsIndependiente;
}
public void setNumeroDeFuegos(int valorNumeroDeFuegos){
numeroDeFuegos=valorNumeroDeFuegos;
}
public boolean getEsIndependiente(){return esIndependiente;}
public int getNumeroDeFuegos(){return numeroDeFuegos;}
}
Código SalonCasa
public class SalonCasa{
private int numeroDeTelevisiones;
private String tipoSalon;
public SalonCasa(){
numeroDeTelevisiones=0;
tipoSalon="desconocido";
}
public void setNumeroDeTelevisiones(int valorNumeroDeTelevisiones){
numeroDeTelevisiones=valorNumeroDeTelevisiones;
}
public void setTipoSalon (String valorTipoSalon){
tipoSalon=valorTipoSalon;
}
public int getNumeroDeTelevisiones(){return numeroDeTelevisiones;}
public String getTipoSalon(){return tipoSalon;}
}
Código Casa
public class Casa{
private double superficie;
private String direccion;
private SalonCasa salonCasa;
private CocinaCasa cocina;
private String datosSalon;
private String datosCocina;
public Casa(){
//establezco unos valores de defecto los atributos simples
superficie=0;
direccion="Direccion";
//Creo nuevos objetos si se trata de atributos objeto
salonCasa =new SalonCasa();
cocina =new CocinaCasa();
}
//Seters
public void setSuperficie(Double valorSuperficie){
superficie=valorSuperficie;
}
public void setDireccion(String valorDireccion){
direccion=valorDireccion;
}
public void setNumeroDeTelevisiones(int valorNumeroDeTelevisiones){ //para que esto se realice en saloncasa tambien tienen qu existir los seters
salonCasa.setNumeroDeTelevisiones(valorNumeroDeTelevisiones);
}
public void setTipoSalon(String valorTipoSalon){
salonCasa.setTipoSalon(valorTipoSalon);
}
// o de esta manera
public void setCocina(boolean valorEsIndependiente,int valorNumeroDeFuegos){
cocina.setEsIndependiente(valorEsIndependiente);
cocina.setNumeroDeFuegos(valorNumeroDeFuegos);
}
/*
public void setSalon ( SalonCasa valorSalon ) {
salonCasa = new SalonCasa();
salonCasa.setNumeroDeTelevisiones(valorSalon.getNumeroDeTelevisiones());
salonCasa.setTipoSalon(valorSalon.getTipoSalon());
}
*/
public String getDatosSalon(){
String tipoSalon=salonCasa.getTipoSalon();
int numeroDeTelevisiones=salonCasa.getNumeroDeTelevisiones();
datosSalon="\n\tSalon tipo: " + tipoSalon + "\n\tNumero de Televisiones: "+ numeroDeTelevisiones;
return datosSalon;
}
public String getDatosCocina(){
boolean esIndependiente=cocina.getEsIndependiente();
int numeroDeFuegos= cocina.getNumeroDeFuegos();
datosCocina="\n\tLa cocina es independiente: " + esIndependiente+"\n\tNumero de fuegos: " + numeroDeFuegos;
return datosCocina;
}
public String getDatosCasa(){
String datosCasa;
getDatosSalon();
getDatosCocina();
datosCasa="\nDatos de la casa:\n\tDireccion: " + direccion + "\n\tSuperficie" + superficie + " \nSalon: " + datosSalon + " \nCocina: " + datosCocina;
System.out.println(datosCasa);
return datosCasa;
}
}
Espero que alguien me diga si esta correcto.