Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Фреймы
Категория: Компоненты
Категория: Компоненты
Компонент SpeedButton
Категория: Компоненты
Категория: Компоненты
Создание и удаление полей
Категория: Базы данных
Категория: Базы данных
Преобразовать любой тип в строку
Категория: Текст и строки
Категория: Текст и строки
Переключение раскладки клавиатуры
Категория: Приложение
Категория: Приложение
Как в Memo прокрутить текст
Категория: Компоненты
Категория: Компоненты
Тpансляция ошибок в BDE
Категория: Базы данных
Категория: Базы данных
Как закачать файл из Интернета
Категория: Интернет и Сети
Категория: Интернет и Сети
Удалить файл в Корзину
Категория: Приложение
Категория: Приложение
Компоненты ToolBar и PageScroller
Категория: Компоненты
Категория: Компоненты
Delphi - Справочник: Public
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 |
Примечание:
|
Предупреждение: избегайте делания полей публичными - всегда лучше вместо этого определить свойство для обращения к ним. Это обеспечивает некоторое разъединение от внутренней организации класса. |