[Newbies] Dismissing an object
Ben Coman
btc at openInWorld.com
Thu Oct 3 08:54:06 UTC 2013
Hi Azka,
Maybe this helps: http://wiki.squeak.org/squeak/1584
Azka Niazi wrote:
> When we create an instance of a class with the new method, it does not show up in the world unless we use the openInWorld method.
The 'World' Morphic UI interface is only a part of the system. There
are many more classes dealing with non-UI facilities like file access,
file access, process scheduling and collections. Should
"OrderedCollection new" somehow appear on the screen ?
The #new method deals with the generic activity of creating new
instances only, not the additional function of asking a morph to display
itself in the World.
> To make it disappear we tried dismiss me option from the halo menu.
By saying "tried" you imply this action failed. What gives you this
impression?
> Does the dismissed object remain created somewhere in the background or does it get completely deleted from the system.
It depends on if anything besides the 'World' references the object. In
particular, if you store the instance in a variable in Workspace, that
will prevent it from being garbage collected. For example, copy the
following to a Workspace the evaluate each line one at a time.
Smalltalk garbageCollect. EllipseMorph allInstances inspect.
"Observe no instances"
x := EllipseMorph new. "Creates a new instance"
EllipseMorph allInstances inspect. "Observe one instance"
x openInWorld. "Displays the instance"
"Close the morph using the halos"
Smalltalk garbageCollect. EllipseMorph allInstances inspect.
"Observe instance remains"
x openInWorld. "Re-displays same instance"
"Close the morph using the halos"
x := nil.
Smalltalk garbageCollect. EllipseMorph allInstances inspect. "Observe
no instances"
> Also, we have to ask, does evaluating (meaning repeatedly using the do it option) for the code which looks like this:className newCreate multiple objects of the same class in the background, or does it override the previously created object?
> Azka
Multiple evaluations of "SomeClassName new" creates multiple independent
instances of that class.
cheers -ben
More information about the Beginners
mailing list