Облака / Clouds
    Go to Copy.com
    Copy.com
    The bast cloud service
    Get 20 GB free!!!
    Support WebDav.
    Show more >>

    Go to Dropbox.com
    Dropbox.com
    time-tested cloud storage
    Support WebDav.
Все бесплатно
    Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.



Вопросы
  Фреймы
   Категория: Компоненты
  Компонент SpeedButton
   Категория: Компоненты
  Создание и удаление полей
   Категория: Базы данных
  Преобразовать любой тип в строку
   Категория: Текст и строки
  Переключение раскладки клавиатуры
   Категория: Приложение
  Как в Memo прокрутить текст
   Категория: Компоненты
  Тpансляция ошибок в BDE
   Категория: Базы данных
  Как закачать файл из Интернета
   Категория: Интернет и Сети
  Удалить файл в Корзину
   Категория: Приложение
  Компоненты ToolBar и PageScroller
   Категория: Компоненты

Delphi - Справочник: Public

ABCDEFGHIJKLMNOPQRSTUVWXYZ

  << Вернуться  

 Public
type Class declaration
Public
Field | Property | Method declaration
{...}
end;
Деректива (Unit )
Начинает внешне доступный раздел класса
Описание:
Директива Public начинает раздел объявлений определения класса. В разделе public, Поля(Fields), Свойства(Properties) и Методы(Methods) объявлены как доступные для этого класса и классов, происходящих от этого, и код используют экземпляры класса. В Объектно-ориентированных терминах, объект класса кажется черным ящиком. Внутренние операции не уместны. Public и published поля, свойства и методы - внешне видимая часть объекта - управляемая доступом к внутренней организации класса.

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

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

  << Вернуться