
- •Глава 1
- •Структура модуля
- •Интерфейс
- •Реализация
- •Инициализация и завершение
- •Ключевые слова
- •Ключевое слово const
- •Ключевое слово type
- •Комментарии
- •Переменные
- •Типы данных и переменные
- •Преобразование типов
- •Знаки операций
- •Константы
- •Массивы
- •Одномерные массивы
- •Многомерные массивы
- •Функции Low и High
- •Динамические массивы
- •Короткая строка
- •Длинная строка
- •Операции со строками
- •Разбиение литерала по строкам программы
- •Строковые функции
- •Множества
- •Совместимость типов данных
- •Примечание.
- •Указатели
- •Статические и динамические переменные
- •Размещение динамических переменных
- •Разыменование указателя
- •Глава 2.
- •Вложенные условия. Операторы if могут быть вложены друг в друга произвольное число раз:
- •Элементы структуры цикла
- •Цикл for…
- •Цикл for с увеличением счетчика синтаксически определен как
- •Цикл for с уменьшением счетчика в общем случае имеет следующий вид
- •Функции Pred и Succ
- •Цикл while
- •Синтаксис цикла while имеет вид
- •Цикл repeat
- •Управление циклами
- •Оператор goto
- •Оператор case
- •Область видимости идентификаторов
- •Пример записи
- •Оператор with
- •Массивы записей
- •Подпрограммы
- •Процедуры и функции
- •Объявление и определение подпрограммы
- •Параметры подпрограмм
- •Локальные процедуры и функции
- •Перегрузка подпрограмм
- •Параметры по умолчанию
- •Глава 3
- •Анатомия класса
- •Наследование
- •Ключевые слова is и as
- •Что такое класс?
- •Анатомия класса
- •Указатель Self
- •Пример класса
- •Анализ объявления и реализации
- •Наследование
- •Перекрытие методов
- •Ключевые слова is и as
Интерфейс
Раздел интерфейса в модуле начинается с ключевого слова interface.
Этот раздел предназначен для объявления идентификаторов, которые «экспортирует» данный модуль. Экспортируемый идентификатор доступен в любом другом модуле проекта, который ссылается на данный модуль в своем списке uses.
Большинство модулей содержат объявления классов, процедур, функций, типов и т.д, которые будут использоваться в других модулях. Любые объекты, которые должны быть доступны другим модулям, следует объявить в разделе интерфейса. Раздел интерфейса заканчивается перед словом implementation.
Реализация
Новый термин: Раздел реализации (implementation) модуля содержит детальный код модуля.
Раздел реализации начинается словом implementation и заканчивается либо итоговым end., либо перед ключевым словом initialization. Ключевое слово initialization используется для создания в модуле раздела инициализации. Пока что мы ограничимся сказанным, ибо прежде чем объяснять тонкости создания модулей необходимо рассмотреть другие аспекты языка Pascal.
Рассмотрим пример, иллюстрирующий использование разделов interface и implementation.
Допустим, нам надо создать модуль с процедурой DoSomething. причем эта процедура должна быть доступна всем модулям проекта. В этом случае мы должны описать процедуру DoSomething в разделе interface и затем написать код этой процедуры в разделе implementation. Вцелом модуль будет выглядеть так, как показано на листинге 1.3.
Листинг 1.3. Модуль с экспортируемой процедурой |
unit Unit2;
interface
procedure DoSomething;
implementation
procedure DoSomething; begin
{ Алгоритм процедуры DoSomething. }
end;
end. |
Обратите внимание на то, что процедура DoSomething объявлена в разделе интерфейса, а затем определена (т.е. дан ее подробный код) в разделе implementation. Правда, мы несколько опередили события, ибо не объяснили еще ни понятие «процедура», ни понятие «функция». Процедуры и функции мы рассмотрим позже.
Инициализация и завершение
Разделы инициализации и завершения предназначены для размещения в них кода, который должен быть выполнен в начале (initialization) и при завершении работы программы (finalization). Код раздела инициализации выполняется когда модуль загружается в оперативную память. Код раздела завершения выполняется перед выгрузкой модуля из памяти. Модуль может содержать только раздел инициализации, однако раздел завершения может быть только в паре с разделом инициализации. Разделы initialization и finalization в модулях необязательны.
Ключевые слова
Помимо обязательных разделов интерфейса и реализации модуль может содержать ряд других разделов. Каждый раздел начинается тем или иным ключевым словом. Некоторые ключевые слова могут употребляться в различных контекстах (т.е. не только как идентификаторы разделов модуля). Здесь мы рассмотрим как некоторые ключевые слова используются в модулях.