On Sep 11, 2012, at 8:41 PM, Camillo Bruni wrote:

> 
> On 2012-09-11, at 20:36, sergio_101 <sergio....@gmail.com> wrote:
> 
>> yes, i know this sounds simple.. but is it possible to instantiate an
>> object with some parameters?
>> 
>> say i have a dictionary:
>> 
>> params := Dictionary new.
>> params at: 'sound' put: 'bark'
>> 
>> dog := Dog new.
>> 
>> ^^ at this point, i would like to just create a dog and send it
>> 'params' all at once..
>> 
>> can i do this? what would the syntax look like?
> 
> sure :) in Smalltalk (almost) everything is a message-send :)
> 
> So you can do the following:
> 
> dog := Dog sound: 'wuff'.
> 
> then a class side method:
> 
> Dog class >> #sound: aString
>       ^ self basicNew
>               initializeWithSound: aString;
                        yourself.

Otherwise you may have some strange behavior if the #initializeWithSound: 
message doesn't return the receiver :)


Ben


> 
> then the initializeWithSound: methods on instance side
> 
> Dog >> #initializeWithSound: aString.
>       self initialize.
>       "now do the special initialization here..."
>       " for instance set the sound"
>       sound := aString.
> 
> Dog >> initialize
>       "do the default initialization here"
>       "for instance set a default sound"
>       sound := 'bark'.
> 
> 
> Hope that helps :)
>       
> 

Reply via email to