Hola Felipe, bienvenido a los foros. Te comento algunas cuestiones.
Revisa
https://aprenderaprogramar.com/foros/index.php?topic=1460.0 donde hay distintas indicaciones para escribir en los foros.
Es importante seguir las pautas para poner título a los temas, pegar el código con el formato adecuado, etc.
En el ejercicio algunas cuestiones a mejorar serían:
- Los métodos set y get por convenio van seguidos del nombre del atributo. En lugar de setInde y getInde es más adecuado setEsIndependiente y getEsIndependiente. No significa que el código no funcione como tú lo has escrito, sino que no se atiene al convenio que siguen los programadores java.
- Si comparas tu segundo constructor con el que aparece en
https://aprenderaprogramar.com/foros/index.php?topic=1238.0 verás algunas diferencias. La principal es que tal y como has escrito tú el código, los objetos que se reciben como parámetros pasan a ser atributos y pueden ser modificados. Con el código tal y como está escrito en ese otro hilo se crean nuevos objetos salonCasa y cocina, de modo que su modificación no afectaría a los objetos que se recibieron como parámetros.
- Con tus métodos setCocinaCasa y setSalonCasa ocurre lo mismo: los objetos recibidos como parámetros pasan a ser atributos. Esto implica que si se manipulan, se verán afectados también los objetos recibidos. Pongo un ejemplo. Supongamos que tú tienes una casa llamada casaFelipe con una cocina llamada cocinaFelipe. Y ahora creamos otra casa llamada casaJuan con una cocina llamada cocinaJuan. Si tú pasas la cocinaFelipe para crear la cocinaJuan, tal y como tú tienes escrito el código, si se modifica la cocinaJuan se modificará también la cocinaFelipe ¿Por qué? Porque estableces el propio objeto recibido como parámetro como atributo en lugar de crear uno nuevo. En cambio con el código como se explica en el hilo indicado puede evitarse esto, que en general es preferible.
Si no entiendes bien esto ahora no te preocupes, apúntalo para revisarlo más adelante.
Saludos