Hola! Quizás se hace un poco complejo ahora pero a medida que trabajes con objetos lo irás entendiendo todo. Piensa en un objeto como una caja dentro de la cual hay cosas (atributos y métodos). Ahora creas un objeto, una caja, y dentro tienes un cuchillo, una botella y otra caja, es decir, otro objeto, que tiene dentro tres monedas y un alfiler por decir algo.
Cada vez que creas un objeto, tienes de partida todos esos elementos (según indica el constructor). Ahora resulta que te llega por parámetro para el método set un objeto que tiene dentro cinco monedas y dos alfileres. ¿Qué puedes hacer?
a) Puedes sacar la caja con tres monedas y un alfiler, y a cambio poner la caja con cinco monedas y dos alfileres.
El problema es que en Java todo son referencias. Al poner la caja con cinco monedas y dos alfileres realmente no ponemos la caja, sino una referencia a la caja. La caja sería única, pero varias personas tienen la llave de la caja (referencia) de modo que si una manipula la caja, la otra persona cuando llegue se va a encontrar que alguien hizo un cambio pero a lo mejor una de las personas con la referencia no quería que otra persona hiciera cambios.
En resumen, supón que tenemos 4 objetos y en los cuatro pasamos como parámetro para un set la caja con cinco monedas y dos alfileres. Ahora en uno de esos 4 objetos hacemos una manipulación y dejamos 2 monedas y 2 alfileres. Sólo hemos hecho la manipulación desde uno de los objetos, pero como los otros tienen todos la referencia en vez del objeto en sí, cuando vayan a buscar se encontrarán que hay 2 monedas en lugar de las cinco que esperaban.
Esto muchas veces no se quiere que suceda. ¿Qué se hace entonces?
b) Cuando me llega como parámetro de un método set no me quedo con la referencia, sino que digo: creo un objeto nuevo, cocina = new CocinaCasa();
Ahora dentro del nuevo objeto nuevo coloco una copia de lo que había en el objeto recibido por referencia:
cocina.setEsIndependiente(objetoCocina.getEsIndependiente());
cocina.setNumeroDeFuegos(objetoCocina.getNumeroDeFuegos());
Ya tengo un objeto que es igual al recibido por parámetro pero que es un nuevo objeto, tiene una nueva referencia (en memoria). De modo que si ahora manipulamos el nuevo objeto creado, sólo lo afectamos a él, porque tiene una referencia única (nueva que hemos creado, puesto que hemos creado un nuevo objeto).
Como te decía puede ser un poco confuso, trata de ir leyendo más hilos del foro (encontrarás muchas explicaciones interesantes) y seguir avanzando y haciendo ejercicios entendiendo lo que haces, si tienes dudas vete consultando para intentar comprender todo lo que se trabaja en el curso.
Saludos!