Описание |
Директива Private начинает раздел данных (полей) и подпрограмм (методы) класса, которые являются частными (внутренними) для этого класса.
Это - жизненно важная часть Объектно-ориентированной концепции, в которой класс рассматривается как черный ящик - то, что используется внутри не уместно для внешнего использования. Указанные в частном (Private) разделе данные и подпрограммы используются другими подпрограммами только данного класса.
Если частные данные нуждаются во внешнем доступе, то свойство public (или published) предоставят данный доступ.
Частные (Private) данные и подпрограммы не доступны даже потомкам класса, чтобы обеспечить этот доступ вы должны использовать Protected. Защищенные (Protected) данные и методы внешне невидимы, но доступны для всех классов в иерархии.
|
|
Похожие команды |
Function Определяет подпрограмму, которая возвращает значение
Procedure Определяет подпрограмму, которая не возвращает значение
Property Определяет управляемый доступ к полям класса
Protected Начинает раздел класса частных данных доступных подклассам
Public Начинает внешне доступный раздел класса
Published Начинается изданный, внешне доступный раздел класса
Type Определяет новую категорию переменной или процесса
| |
|
Пример кода : Класс с частными данными и частной подпрограммой |
// Полный код Модуля. // ----------------------------------------------------------- // Вы должны поместить этот код в модуль с именем Unit1 и с формой // названную Form1, которая имеет событие OnCreate названное FormCreate.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type // Класс с Индексированными свойствами
TRectangle = class
Private
fCoords: array[0..3] of Longint;
function GetCoord(Index: Integer): Longint;
procedure SetCoord(Index: Integer; Value: Longint);
public
property Left : Longint index 0 read GetCoord write SetCoord;
property Top : Longint index 1 read GetCoord write SetCoord;
property Right : Longint index 2 read GetCoord write SetCoord;
property Bottom : Longint index 3 read GetCoord write SetCoord;
property Coords[Index: Integer] : Longint read GetCoord write SetCoord;
end;
// Сам класс формы
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Свойство TRectangle подпрограмма 'Получатель'
function TRectangle.GetCoord(Index: Integer): Longint;
begin // Только разрешенные допустимые индексные значения
if (Index >= 0) and (Index <= 3)
then Result := fCoords[Index]
else Result := -1;
end;
// Свойство TRectangle подпрограмма 'Установщик'
procedure TRectangle.SetCoord(Index, Value: Integer);
begin // Только разрешенные допустимые индексные значения
if (Index >= 0) and (Index <= 3)
then fCoords[Index] := Value;
end;
// Основная линия кода
procedure TForm1.FormCreate(Sender: TObject);
var
myRect : TRectangle;
i : Integer;
begin // Создание моего маленького прямоугольника
myRect := TRectangle.Create;
// И установка угловых координат myRect.Left := 22; // Левых используя прямой метод
myRect.Top := 33; myRect.SetCoord(2,44); // Правых используя индексированный метод
myRect.SetCoord(3,55);
// И спрос этих значений
for i:= 0 to 3 do
ShowMessage('myRect coord '+IntToStr(i)+' = '+intToStr(myRect.GetCoord(i)));
end;
end.
|
myRect coord 0 = 22
myRect coord 1 = 33
myRect coord 2 = 44
myRect coord 3 = 55
|
|