Справочник функций и процедур Delphi: Public

  Навигация по первой букве:

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

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

Public
Деректива
Начинает внешне доступный раздел класса unit
  
type Class declaration
Public
  Field | Property | Method declaration
{...}
end;

Google  
 
Описание
Директива Public начинает раздел объявлений определения класса. В разделе public, Поля(Fields), Свойства(Properties) и Методы(Methods) объявлены как доступные для этого класса и классов, происходящих от этого, и код используют экземпляры класса. В Объектно-ориентированных терминах, объект класса кажется черным ящиком. Внутренние операции не уместны. Public и published поля, свойства и методы - внешне видимая часть объекта - управляемая доступом к внутренней организации класса.

Поскольку public и published доступ обеспечивает связь видов с внешним кодом, Вы должны избегать везде, где возможно, создание изменений в этих разделах.

Раздел Published очень похож на раздел Public, за исключением того, что он обеспечивает немного информацией во время выполнения.
Примечания
Предупреждение: избегайте делания полей публичными - всегда лучше вместо этого определить свойство для обращения к ним. Это обеспечивает некоторое разъединение от внутренней организации класса.
Похожие команды
Function  Определяет подпрограмму, которая возвращает значение

Private  Начинает частный (Private) раздел данных и методов в классе

Procedure  Определяет подпрограмму, которая не возвращает значение

Property  Определяет управляемый доступ к полям класса

Protected  Начинает раздел класса частных данных доступных подклассам

Published  Начинается изданный, внешне доступный раздел класса

Type  Определяет новую категорию переменной или процесса

 
Пример кода : Подкласс который использует public метод для обращения к внутренним данным и методам
// Полный код Модуля.
// -----------------------------------------------------------
// Вы должны поместить этот код в модуль с именем Unit1 и с формой
// названную Form1, которая имеет событие OnCreate названное FormCreate.

unit Unit1;

interface

uses
  Forms, Dialogs, Classes, Controls, StdCtrls, SysUtils;

type
  // Определение базового класса TSquare :
  // Он имеет частные данные, которые могут быть только установлены защищенным методом
  TSquare = class
  private           // Известный только родительскому классу
    squareArea : Integer;
  protected         // Известный всем классам в иерархии
    squareWidth, squareHeight : Integer;
    procedure setArea;
  Public            // Внешне видимый пользователями класса
    property width  : Integer read squareWidth;
    property height : Integer read squareHeight;
    property area   : Integer read squareArea;
  published         // Внешне видимый: имеет также информацию во время выполнения
    constructor Create(width, height : Integer);
  end;

  // Определение порожденного типа:
  // Он должен использовать защищенный родительский метод для установки
  // частной площади квадрата
  TChangeableSquare = class(TSquare)
  Public
    procedure ChangeSize(newWidth, newHeight : Integer);
  end;

  // Определение класса формы используемой этим модулем
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm} // Вложение определений формы

// Создание объекта TSquare

constructor TSquare.Create(width, height: Integer);
begin
  // Сохранение ширины и высоты в защищенных полях
  squareWidth  := width;
  squareHeight := height;

  // И вычисление площади квадрата
  setArea;
end;

// Изменение измерений TChnageableSquare
procedure TChangeableSquare.ChangeSize(newWidth, newHeight: Integer);
begin
  // Перезапись первоначальных значений ширины и высоты
  squareWidth  := newWidth;
  squareHeight := newHeight;

  // И пересчёт площади квадрата
  setArea;
end;

// Установка размера квадрата из его измерений
procedure TSquare.setArea;
begin
  // Вычисление площади квадрата и конфиденциальное сохранение
  squareArea := width * height;
end;

// Основная линия кода
procedure TForm1.FormCreate(Sender: TObject);
var
  mySquare : TChangeableSquare;
begin
  // Создание изменяемого квадрата
  mySquare := TChangeableSquare.Create(30, 40);

  // Какова сейчас площадь квадрата?
  ShowMessage('Квадрат 30,40 площадь = '+IntToStr(mySquare.area));

  // Изменение измерений квадрата
  mySquare.ChangeSize(10,20);

  // Какова сейчас площадь квадрата?
  ShowMessage('Квадрат 10,20 площадь = '+IntToStr(mySquare.area));
end;

end.
Квадрат 30,40 площадь = 1200
Квадрат 10,20 площадь = 200
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook