Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
все ответы.docx
Скачиваний:
8
Добавлен:
26.09.2019
Размер:
2.71 Mб
Скачать

Примеры Классов: Класс фигур:

Содержит объекты: квадрат, треугольник, круг и т.д.

Класс Животных. Объекты: обезьяны, львы... человеки

17. Атрибуты доступа к элементам класса.

Интерфейс класса состоит из произвольного количества произвольно чередующихся секций (атрибутов доступа или доступности или видимости):

public, protected, private, published и automated

  • Public (общедоступный, открытый) – элементы класса, доступные всем, кто использует класс и/или его объекты

  • Protected (защищенный) – элементы класса, доступные в классах производных (наследующих) от данного.

  • Private (закрытый) – элементы класса, доступные только изнутри класса, а так же из некоторых особо выделенных классов и функций (в разных ОО языках существуют разные способы указания таких классов и функций)

Значение первых трех областей видимости совпадает с указанным выше. Для секции private способ указания функций и классов, видящих эти элементы — размещение в одном модуле с классом. Последние две по области видимости приравнены к public, но имеют некоторую дополнительную чисто техническую нагрузку. Кроме того, применение ключевого слова automated признано устаревшим и оставлено только для обратной совместимости с предыдущими версиями, оно рассматриваться далее в курсе не будет. Ключевое слово published будет рассмотрено в теме «VCL». Действие атрибута распространяется на элементы класса, описанные по тексту после него до момента появления другого атрибута или конца объявления класса. В начале описания класса может присутствовать секция, не имеющая явно указанного атрибута видимости, она в различных случаях расценивается или как public, или как published

Пример: пример “атрибуты доступа” (лекция №__)

Рис. 1. Иерархия классов

Рис. 2. Экранная форма приложения

Структура проекта

Проект состоит из двух модулей:

  1. Unit1.pas - содержит описание класса One и его наследника – класса Two;

  2. Unit2.pas - модуль главной формы; также содержит описание еще одного наследника класса One – класса Three. Кроме этого, в данном модуле создаются экземпляры всех трех классов (O, TW, TR) и приведен пример обращения к разным элементам этих объектов (см. метод TForm1.Button1Click).

  • Создание объектов происходит при запуске программы (раздел инициализации модуля Unit2), а удаление – при ее завершении (раздел завершающих действий модуля Unit2)

Описание классов

Иерархия наследования приведена на рис. 1. Рассматриваемые классы также наследуют от класса TObject – общего предка для всех классов Delphi (см. конструктор Create, метод Free).

  • Класс One

Содержит три поля с различными уровнями доступа:

  • a:byte (public)

Поле доступно для любых внешних объектов;

  • b:real (protected)

Поле доступно для потомков, вне зависимости от того, где они объявлены;

  • c:char (private)

Поле доступно только внутри модуля, в котором описан объект и недоступно извне.

  • Класс Two

Наследует поля класса One и добавляет к ним общедоступные строковое поле d и метод e() – функцию, возвращающую значение поля a, увеличенное в 10 раз.

  • Класс Three

Наследует поля класса One, добавляет к ним скрытое поле g и общедоступный метод h() – процедуру, возвращающую строковое значение 'Работа процедуры THREE.H'.

  • Вид главной формы приложения на этапе выполнения см. на рис. 2. Исходный код проекта см. в каталоге \Примеры\Лекция_Атрибуты доступа