[Newbies] constants

Norbert Hartl norbert at hartl.name
Mon Sep 29 14:23:53 UTC 2008


On Mon, 2008-09-29 at 13:16 +0100, Marcin Tustin wrote:
> A class is "just" another object whose own class is Class. I actually
> don't know when the class initialisiation method is called after
> creation. As usual, if all it does is things you know to be safe, go
> ahead and call it manually.
> 
It is not called _after_ creation. You said it is just another
object. And therefor it is part of the new call. The difference
here is that when you create a class there is no initialize 
method. You define that later. So it is e.g. executed when load
from Monticello or anything that creates the class at a whole
including the initialize method. 

I hope that comes near to what happens really :)

Norbert
> On 9/29/08, Mark Volkmann <mark at ociweb.com> wrote: 
>         On Sep 29, 2008, at 6:00 AM, Marcin Tustin wrote:
>         
>         > The initialize method on the class side will be called only
>         > when *the class* is initialised. You are thinking of the
>         > instance-side initialize method which is called each time
>         > you create an instance. 
>         
>          
>         Wow. I wasn't aware that there was both a class and instance
>         initialize method. Thanks for explaining that!
>         
>          
>         What causes the class initialize method to be invoked ... and
>         reinvoked after I change it?
>         
>         > On 9/29/08, Mark Volkmann <mark at ociweb.com> wrote: 
>         >         On Sep 28, 2008, at 11:32 PM, K. K. Subramaniam
>         >         wrote:
>         >         
>         >                 On Sunday 28 Sep 2008 7:26:43 pm Mark
>         >                 Volkmann wrote:
>         >                         I think my main issue is scoping. I
>         >                         want to define a constant that is
>         >                         associated with a class to avoid
>         >                         name conflicts.
>         >                 See classes Color, Cursor or Float for
>         >                 examples of scoped constants:
>         >                  Color red
>         >                  Cursor wait
>         >                  Float pi
>         >                 
>         >                 For constants that should be exposed to a
>         >                 few (but not all) classes, use pool
>         >                 dictionaries.
>         >         
>         >         Thanks! This brings up another question. Where is a
>         >         good place to initialize a constant? I see in the
>         >         case of "Float pi" that it is held in a class
>         >         variable that is initialized in the initialize
>         >         method. Isn't it the case that the initialize method
>         >         is only called if a Float object is created? Also,
>         >         isn't it called every time a Float object is
>         >         created? It seems that would mean if I followed that
>         >         pattern for one of my own constants then I wouldn't
>         >         be sure it was set and I'd pay the cost of setting
>         >         it many times.
>         >         
>         >         ---
>         >         Mark Volkmann 
>         >         
>         >         
>         >         
>         >         
>         >         
>         >         _______________________________________________
>         >         Beginners mailing list
>         >         Beginners at lists.squeakfoundation.org
>         >         http://lists.squeakfoundation.org/mailman/listinfo/beginners
>         >         
>         > 
>         > _______________________________________________
>         > Beginners mailing list
>         > Beginners at lists.squeakfoundation.org
>         > http://lists.squeakfoundation.org/mailman/listinfo/beginners
>         
>         
>         ---
>         Mark Volkmann
>         
>          
>         
>         
>          
>         
>          
>         
>         _______________________________________________
>         Beginners mailing list
>         Beginners at lists.squeakfoundation.org
>         http://lists.squeakfoundation.org/mailman/listinfo/beginners
>         
> 
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners



More information about the Beginners mailing list