Hola Víctor
Tu observación es correcta.
No se correponden los valores que modificas desde el objeto de tipo Casa (instancia de Casa) con lo que tiene el objeto de tipo SalonCasa (instancia de SalonCasa) porque ésta no es la manera de relacionar las tres clases.
Repasamos tu código.
Las clases SalonCasa y CocinaCasa están perfectas (no tenían ninguna dificultad)
Y en la clase Casa:
El constructor está bien.
También estan bien los métodos:
setSuperficie (double valorSuperficie)
setDireccion (String valorDireccion)
getSuperficie()
getDireccion ()
Los otros métodos, no corresponden a esta clase, son métodos de las clases SalonCasa y CocinaCasa.
En su lugar debemos crear los métodos set y get de los atributos salonCasa y cocinaCasa
Para el atributo salonCasa el método get será:
public SalonCasa setSalonCasa() { return salonCasa; }
donde:
'public' indica el alcance del método
'SalonCasa' es el tipo de devolverá el método que no será un int ni un String, sino un objeto de tipo SalonCasa
'setSalonCasa' es el nombre del método.
y 'return salonCasa' es la instrucción de devuelve el valor del atributo salonCasa de esta clase (Casa)
Y el método set para el atributo salonCasa será:
public void setSalonCasa (SalonCasa valorSalonCasa) {
salonCasa = valorSalonCasa;
}
Otra versión del método set para este atributo de tipo SalonCasa, es:
public void setSalonCasa (SalonCasa valorSalonCasa) {
salonCasa = new SalonCasa();
salonCasa.setNumeroDeTelevisores(valorSalonCasa.getNumeroDeTelevisores());
salonCasa.setTipoSalon(valorSalonCasa.getTipoSalon());
}
Visto lo anterior, para que tu clase Casa esté bien construida falta crear los métodos set y get para el atributo cocinaCasa, que dejo en tus manos.
Finalmente, cuando tengas esta clase completa, hacer lo que comentabas al principio de tu mensaje.
Creas un objeto de tipo SalonCasa y otro de tipo CocinaCasa. Cambiar sus atributos con sus métodos set para que no tengan los valores por defecto.
Luego creas un objeto de tipo Casa y modificas el atributo salonCasa con su método set.
En la ventana que te muestra BlueJ has de escribir el nombre que tiene el objeto de tipo SalonCasa que creaste antes y cuyos atributos modificaste, (también puedes hacer clic con el ratón en el objeto de tipo SalonCasa de color rojo que tienes en la ventana y BlueJ lo escribirá por ti)
Verás que cuando inspecciones el objeto de tipo Casa, en la ventana mostrada, el atributo de tipo SalonCasa está representado por una flecha, si inspeccionas ese objeto (flecha) verás que se corresponde con el objeto creado y modificado por ti.
Si no me he saltado ningún paso, todo debe corresponderse.
En este momento estamos trabajando además de con primitivos de tipo int o boolean con atributos de tipos creados por nosotros (SalonCasa y CocinaCasa).
Y nuestro aprendizaje con Java continúa.
Saludos