Un mensaje es algo que yo le puedo decir a un objeto.
Un método es una secuencia de líneas de código que tiene un nombre.
Cuando se le envía un mensaje a un objeto, se activa un método cuyo nombre coincide con el mensaje enviado. La palabra método puede entenderse como “forma”, describe la forma en que algunos objetos responden a un determinado mensaje cuando alguien se los envía.
P.ej. si tengo un objeto referenciado por la variable pepe, y pongo
Smalltalk:
pepe direccion
Wollok:
pepe.direccion()
entonces
self, es una referencia al objeto que recibió el mensaje por el cual se activó el método.
En el ejemplo, si en el método direccion dice self, entonces al hacer pepe direccion este self va a ser una referencia al objeto referenciado por pepe.