Public Directive
The public
directive introduces the public section
of a class declaration. Public fields, methods, and properties are
accessible from any other subroutines or method in the same unit or
in any unit that uses the declaring unit (provided the class
declaration is in the unit’s interface
section).
Fields should never be made public. Instead, declare fields in the private section, and declare public properties to access the fields. Properties are more flexible than fields, and they give you more opportunity to change the class declaration without affecting uses of the class.
Public methods and properties define the external behavior of a class and its objects. Once a class is in use, refrain from making changes to the public methods and properties if at all possible. Instead of changing a method, declare a new method with new behavior. Public changes have a way of propagating and upsetting other code in a project.
A class declaration can begin with an initial, unnamed section. The
default access level for the unnamed section is public unless the
class uses the $M
or $TypeInfo
compiler directives to enable RTTI, or if the class inherits from a
class that has RTTI enabled. TPersistent
in
Delphi’s Classes
unit enables RTTI, so all
persistent classes (including all components, controls, and forms)
have RTTI. The initial, unnamed section is published for classes with
RTTI.