For objects, 3 visibility speci ers exist : private, protected and public. If a visibility
speci er is not speci ed, public is assumed. Both methods and elds can be hidden from
a programmer by putting them in a private section. The exact visibility rule is as
follows:
Private
All elds and methods that are in a private block, can only be accessed in the
module (i.e. unit or program) that contains the object de nition. They can be accessed
from inside the object's methods or from outside them e.g. from other objects' methods,
or global functions.
Protected
Is the same as Private, except that the members of a Protected section are
also accessible to descendent types, even if they are implemented in other modules.
Public
sections are always accessible, from everywhere. Fields and metods in a public
section behave as though they were part of an ordinary record type.