Помимо объявления элементов
класса (полей, методов, свойств) описание класса, как правило, содержит директивы
protected (защищенный) и private (закрытый), которые устанавливают степень видимости
элементов класса в программе.
Элементы класса, объявленные
в секции protected, доступны только в порожденных от него классах. Область видимости
элементов класса этой секции не ограничивается модулем, в котором находится
описание класса. Обычно в секцию protected помещают описание методов класса.
Элементы класса, объявленные
в секции private, видимы только внутри модуля. Эти элементы не доступны за пределами
модуля, даже в производных классах. Обычно в секцию private помещают описание
полей класса, а методы, обеспечивающие доступ к этим полям, помещают в секцию
protected.
Ниже приведено описание
класса TPerson, в которое включены директивы управления доступом.
TPerson
= class private
FName:
TName; // значение свойства Name
FAddress:
TAddress; // значение свойства Address
protected
Constructor
Create(Name:TName);
Function
GetName: TName;
Function
GetAddress: TAddress;
Procedure
SetAddress(NewAddress:TAddress);
Property
Name: TName
read
GetName;
Property
Address: TAddress
read
GetAddress
write
SetAddress;
end;
Примечание
Иногда нужно полностью скрыть
элементы класса. В этом случае определение класса следует поместить в отдельный
модуль, а в программу, которая использует объекты этого класса, поместить
ссылку на модуль.
Знаете ли Вы, что релятивистское объяснение феномену CMB (космическому микроволновому излучению) придумал человек выдающейся фантазии Иосиф Шкловский (помните книжку миллионного тиража "Вселенная, жизнь, разум"?). Он выдвинул совершенно абсурдную идею, заключавшуюся в том, что это есть "реликтовое" излучение, оставшееся после "Большого Взрыва", то есть от момента "рождения" Вселенной. Хотя из простой логики следует, что Вселенная есть всё, а значит, у нее нет ни начала, ни конца... Подробнее читайте в FAQ по эфирной физике.