Hacer vs devolver

Cuando enviás un mensaje a un objeto y éste lo entiende, puede reaccionar de dos formas diferentes:

  • Como fuiste viendo hasta ahora una forma es devolver algo, o sea, otro objeto. Por ejemplo el mensaje energia() devuelve un número que representa la cantidad de energia que tiene, y estasFeliz() devuelve un valor booleano. En otras palabras, estos mensajes son como preguntas y en el mundo de buenos modales de los objetos las preguntas se responden.
  • Pero también hay otros mensajes que producen un efecto, es decir, provocan un cambio. Por ejemplo, el mensaje comerLombriz deberia afectar de alguna manera a pepita. En otras palabras, enviar un mensajes de estos es como pedir un favor y en el mundo de buenos modales de los objetos los favores se realizan.

Fijate qué sucede en la consola:

Para empezar, comprobá una vez más que pepita nos sabe decir su energia. Ahora, ¿Qué pasa cuando le envías el mensaje comerLombriz()? ¿Te respondió algo? ¿Qué hizo? ¿Qué pasa si volvés a preguntarle a pepita por su energía?

Bien! Ya descubrimos que no es un problema que un mensaje no te devuelva nada. No significa que no hizo nada, simplemente hizo algo que no viste en el momento.

También pepita entiende otro mensaje: volarEnCirculos()? ¿Qué es lo que hace? ¿Devuelve energia() siempre lo mismo? ¿Pepita estará feliz por siempre? Descubrilo intercalando varios envíos de mensajes.

Para ser justos, un mensaje podría reaccionar con una combinación de las formas anteriores: tener un efecto y devolver algo. Pero esto es normalmente una muy mala idea

Tenés que iniciar sesión antes de empezar a enviar tus soluciones