Тело модуля (package body) — это объект словаря данных, хранящийся отдельно от заголовка модуля. Тело модуля нельзя скомпилировать, если ранее не был успешно скомпилирован заголовок. В теле содержится текст подпрограмм, предварительно объявленных в заголовке модуля. В нем могут находиться также дополнительные объявления, глобальные для тела модуля, но не видимые в его описании. Тело модуля ClassPackage показано в следующем примере:
В теле модуля содержится программный текст для предварительных объявлений, сделанных в заголовке модуля, и могут также находиться дополнительные переменные, курсоры, типы и подпрограммы. На объекты в заголовке, которые не были объявлены предварительно (например, исключение e_StudentNotRegistered), можно ссылаться в теле модуля непосредственно.
Тело модуля не является обязательной его частью. Если в заголовке не указаны какие-либо процедуры или функции (а только переменные, курсоры, типы и т.д.), тело можно не создавать. Такой способ полезен для
объявления глобальных переменных, поскольку все объекты модуля видимы вне его пределов (область действия и область видимости элементов модуля обсуждаются в следующем разделе).
Любое предварительное объявление в заголовке модуля должно быть раскрыто в его теле. Описание процедуры или функции должно быть таким же и включать в свой состав имя подпрограммы, имена ее параметров и вид каждого параметра. Например, приведенный ниже заголовок не соответствует телу модуля, так как в теле используется список параметров функции FunctionA, отличный от списка параметров, указанного в заголовке.
< Предыдущая | Следующая > |
---|