[Newbies] Message/Method

Bert Freudenberg bert at freudenbergs.de
Tue Dec 5 20:00:40 UTC 2006


On Dec 5, 2006, at 11:52 , Blake wrote:

> 	I'm not sure whether to ask this here or on the main list, but I  
> thought I'd start here.
>
> In a traditional 3GL with objects bolted on, methods are  
> subroutines with a hidden "self" parameter, so if I write (using,  
> oh, Object Pascal):
>
> MyObject.MyMethod;
>
> I know that MyObject is of a class that has a method (or an  
> ancestor with a method) called MyMethod.
>
> 	I have read things on Smalltalk that suggest to me that:
>
> myObject myMethod.
>
> the selector "myMethod" does not necessarily map one-to-one with a  
> method named "myMethod".
>
> 	But I haven't been able to figure out how that could be, or under  
> what situation it would be useful.

The difference is that you can send any message to any object, and  
the object's class can decide how to handle that method. By default,  
the class looks into the dictionary of all defined methods and  
invokes the matching method. But it can also decide to handle *any*  
message, regardless of which methods are actually defined. This lets  
you implement, for example, generic object wrappers that log any  
message sent to an object. Or, forward the message over the network  
to another image. Or, which is the normal case, raise an exception  
that this message was not understood.

- Bert -




More information about the Beginners mailing list