8.4 тело пакетаТело пакета обеспечивает реализацию ресурсов пакета, перечисленных в его спецификации: PACKAGE BODY Имя_Пакета IS - - Локальные_Описания [ BEGIN - - Последовательность_Операторов [ EXCEPTION - - Оработчики_Исключений ] ] END Имя_Пакета; Локальные_Ошсания в теле пакета предназначены для реализации ресурсов, перечисленных в спецификации пакета, а также для описания локальных ресурсов, необходимых для их реализации. Локальные описания в теле пакета являются невидимыми и недоступными вне пакета. Последователъность_Операторов в теле выполняется только при предвыполнении пакета. Как правило, предвыполнения тела пакета связаны с инициализацией объектов, описанных в спецификации. Обработчики_Исключений предназначены для обработки исключений, возникающих при выполнении операций в теле пакета. Если обработчик отсутствует в теле пакета, то исключение распространяется на часть программы, где находится пакет. П Пример тела пакета выше Data , спецификация которого описана package body DATA is VA, VB : Vector; - - локальные переменные и тип sybtype Short_Vector is Vector ( 1 . . 10 ) ; procedure Sum_Vec (А, В : in Vector; С : out Vector) is begin for i in 1 .. n loop C(i):= A(i) + B(i); end loop; end Sum_Vec; procedure Clean_Vec ( Z: in out Vector) is - - локаль- begin - - ная процедура for j in 1 .. N loop Z(j): = 0; end loop; end Clean_Vector ; begin - - операторная часть тела пакета Clean (VA); - - инициализация локальных переменных Clean (VB ); end DATA; ffl СОВЕТЫ: * Используйте пакеты для обьединения логически связанных типов и объектов. * Используйте пакеты для сокрытия информации. * Используйте пакеты с тэговыми и приватными типами для абстрактных типов данных. * Используйте спецификатор renames вместо спецификатора use для пакетов. * Для обеспечения видимости операторов используйте спецификатор use type вместо renames. * Минимизируйте использование спецификатора use . 79 Глава 8. Пакеты Ада 95. Введение в программирование 78
|
| Оглавление| |