On Thu, 08 Feb 2007 22:58:32 -0800, Klaus D. Witzel
<[EMAIL PROTECTED]> wrote:
Sure. Evaluate "Object halt; new" with doIt and then in the debugger, in
the DoIt method line push the buttons "Through" then "Into".
Aha.
Huh.
Why doesn't this:
^ self basicNew initialize
cause a DNU? Object doesn't have an "initialize" method.
But yes we care :) The default initializer is Object>>#initialize, an
empty method with is executed at primitive speed (it just returns self).
Before that, #basicNew (the primitive) has already initialized the new
instance with all nil's (or zeros, depending on the class' format spec).
From the ~ 2887 classes in my Squeak-dev image, only some 928 implement
initialize (even less when subtracting all the class side implementors).
So yes, it's quite common behavior to let the user set something
actually useful.
I wasn't clear. I'm accustomed to creating "reasonable defaults" for
instances. In a lot of cases, this has struck me as dumb, since there are
no reasonable defaults. I thought I saw the same thing going on in Squeak
but that doesn't seem to be the case.
_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners