Крім оголошення елементів класу (полів, методів, властивостей) опис класу, як правило, містить директиви 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;
Примітка
Іноді потрібно повністю приховати елементи класу. У цьому випадку визначення класу слід помістити в окремий модуль, а в програму, яка використовує об’єкти цього класу, помістити посилання на модуль.