Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
10 Классы испр.doc
Скачиваний:
20
Добавлен:
27.10.2018
Размер:
94.21 Кб
Скачать

7. Области видимости

Object Pascal имеет несколько ключевых слов - директив, которые определя­ют видимость элементов, объявленных в интерфейсе (объявлениях) класса. Объ­явление класса может быть разделено на разделы, каждый из которых начинает­ся с одного из ключевых слов - стандартных директив класса. Они определяют области видимости его элементов. Разделы могут быть: основной (общий), private (частный, личный), protected (защищенный), public (публичный, общий) и published (опубликованный). Каждый раздел объявления может включать по­ля, свойства и методы.

Структура объявления класса:

Туре

имя-класса = class ( имя-родителя)

объявление (published) полей и методов;

private объявление полей и методов;

protected объявление полей и методов;

public объявление полей и методов;

published объявление полей и методов;

end;

Поля, свойства и методы секции public не имеют ограничений на видимость. Они доступны из других методов как в данном модуле, так и из всех других мо­дулей, ссылающихся (uses) на данный модуль.

Поля, свойства и методы секции private доступны только в методах класса то­го же модуля, что и описываемый класс. Это позволяет скрыть от всех осталь­ных модулей детали реализации данного класса.

Поля, свойства и методы секции protected доступны только из методов данно­го модуля и из модулей классов - потомков данного класса. Такие элементы не­обходимы для разработчиков новых компонентов - потомков существующих.

В секции published должны быть собраны те свойства объекта, которые будут видны не только во время исполнения приложения, но и из среды разработки. Все свойства компонентов, доступные через Инспектор объектов Delphi, явля­ются их опубликованными свойствами. Во время выполнения программы такие свойства общедоступны, как и свойства секции public.

Первый (общий) раздел (до объявления, разделов, сразу после строки со словом class) определения класса по умолчанию является published - разделом.

8. Динамическая информация о типе. Оператор Is и оператор As

Объекты содержат информацию о типе и наследовании, которую можно исполь­зовать во время выполнения приложения, например, для проверки принадлежности объекта к определенному типу.

Большинству методов при вызове передается параметр Sender типа TObject. Для выполнения операций над свойствами объекта, вызвавшего метод, в ряде слу­чаев надо привести его к типу объекта, над которым выполняются операции. При­ведение (преобразование) типа может быть явное и неявное.

Для операций с типами в Object Pascal используются операция is и оператор AS (как). Операция is (есть) используется в логическом выражении для определения при­надлежности параметра к заданному классу. Формат выражения с этой операцией:

<0бъект> is <Класс>

Оператор AS предназначен для приведения одного типа к другому (заданному) и используется в выражении вида:

<0бъект> As <Класс>

Пример приведения типа:

Procedure TForm1.Button1CHck(Sender: TObject);

begin

If (Sender is TButton) // - проверка принадлежности к типу TButton

then (Sender As TButton).Caption := TimeToStr(Now);

End;

При нажатии на кнопку Button 1 в качестве надписи на ней отображается те­кущее время. Используется неявное преобразование типа (Sender as TButton).

Использование параметра Sender и приведение типа целесообразно, если ме­тод обработки события используется для нескольких компонентов разного типа.

Явное приведение типа производится с помощью конструкции:

<Тип> (<0бъект>)

Пример явного преобразования типа:

Procedure TForm1.Button1Click(Sender: TObject);

Begin

TButton (Sender).Caption := 'Кнопка';

end;

где TButton (Sender) - явное преобразование к типу TButton.