Hi,
In message "[ruby-talk:4705] new, initialize, etc."
on 00/09/01, hal9000 / hypermetrics.com <hal9000 / hypermetrics.com> writes:
|As I see it, new is typically a class method which invokes the
|initialize method.
|
|First of all, why? I guess I can understand new being a class method,
|but why is initialize named differently? Why not just define new for
|the class and put the initializing code in there?
As Dave explained in [ruby-dev:4707], the instance creation is done in
two steps. Why? Because the `new' class method does not have special
privilege to access internal of the object. It's naturally done by
the instance method (initialize) to initialize the object,
|Second, I've read a little about finalizing objects; I'm not sure why
|or when to do it. And why do it that way, rather than just provide a
|method to be called by the GC when the object dies?
A finalizer like Java (a method to be called by GC) may "resurrect"
the unreferenced object. It may result performance drawback.
|Finally, how are BEGIN and END supposed to be used? I've read what they
|do -- it seems to me they would be useful for modules -- but I don't
|actually grasp them. Are they completely unrelated to the concept of
|creating and destroying objects?
It's handy with -n/-o option for the interpreter.
matz.