Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
Private
Деректива
Начинает частный (Private) раздел данных и методов в классе unit
  
type Class declaration
Private
  Data | Method declaration;
{...}
end;
Описание
Директива 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
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия