[1236] in Coldmud discussion meeting
Re: [COLD] public/private/protected object variables
daemon@ATHENA.MIT.EDU (Sat Mar 1 00:24:11 1997
)
From: "Jon A. Lambert" <jlsysinc@ix.netcom.com>
To: "COLD" <coldstuff@cold.org>
Date: Sat, 1 Mar 1997 00:22:32 -0500
> Back when I added public/private/protected methods I considered diong the
> same with variables. Once again I'm considering it--simply because the
> need for such a beast is more and more becoming a need for some people.
> What I'm thinking of implementing is three types of object variables. We
> would still keep encapsulation in that only the definer can access
> variables and instances it defines. What we would be expanding on is the
> default value for these instances (i.e. what is inherited and how).
> Basically:
>
> private -- act as they do now--if no instance is defined
> simply return zero. This would be the default
> protected -- if there is no instance, use the _definers_
> instance (and only the definers)
> public -- get the first instance in the ancestor tree--using
> the same search requirements as for methods. We
> would likely want a cache like with methods..or
not.
>
> Comments?
>
Yes! Definitely!!
I think these are formally called class attributes in OO terminology.
If you are familiar with Smalltalk these are called "class variables".
In C++ they are called "static variables".
I believe that these could be EXTREMELY useful constructs.
I know the memory size of derived objects could be reduced in many
circumstances. It would also allow better encapsulation and might
even reduce the proliferation of unnecessary utility-object types.
Of course, I could be wrong.