Книга: Основы объектно-ориентированного программирования
Использование констант
Использование констант
Вот пример, показывающий, как клиент может применять константы, определенные в классе:
class FILE feature
error_code: INTEGER; -- Атрибут-переменная
Ok: INTEGER is 0
Open_error: INTEGER is 1
...
open (file_name: STRING) is
-- Открыть файл с именем file_name
-- и связать его с текущим файловым объектом
do
error_code := Ok
...
if "Что-то не так" then
error_code := Open_error
end
end
... Прочие компоненты ...
end
Клиент может вызвать метод open и проверить успешность операции:
f: FILE; ...
f.open
if f.error_code = f.Open_error then
"Принять меры"
else
...
end
Нередко нужны и наборы констант, не связанных с конкретным объектом. Их, как и раньше, можно объединить в класс, выступающий в роли родителя всех классов, которым необходимы константы. В этом случае можно не создавать экземпляр класса:
class EDITOR_CONSTANTS
feature
Insert: CHARACTER is 'i'
Delete: CHARACTER is 'd'; -- и т.д.
...
end
class SOME_CLASS_FOR_THE_EDITOR
inherit
EDITOR_CONSTANTS
...Другие возможные родители ...
feature ...
... подпрограммы класса имеют доступ к константам, описанным в EDITOR_CONSTANTS ...
end
Класс, подобный EDITOR_CONSTANTS, служит лишь для размещения в нем группы констант, и его роль как "реализации АТД" (а это - наше рабочее определение класса) не столь очевидна, как в предыдущих примерах. Теоретическое обоснование введения таких классов мы обсудим позднее. Представленная схема работоспособна только при множественном наследовании, поскольку классу SOME_CLASS_FOR_THE_EDITOR могут потребоваться и другие родители.
- 9.1.6. Использование статуса завершения порожденного процесса
- Глава 4. Создание и использование табличных видов
- 18.2. Использование таймеров
- Использование списка констант
- Использование констант внешних объектов
- Два языка внутри одного задания (использование функции InputBox языка VBScript в сценариях JScript)
- Использование констант для атрибутов
- Работа с переменными
- Constants
- Глава 2 Аргументы, опции и переменные окружения
- Векторный тип
- 4.4.1. Понятие о дескрипторах файлов