Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Использование констант





 

Вот пример, показывающий, как клиент может применять константы, определенные в классе:

 

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 могут потребоваться и другие родители.

 

Константы пользовательских классов

 

Символические константы полезны не только при работе с предопределенными типами, такими как INTEGER. Они нужны и тогда, когда их значениями являются объекты классов, созданных разработчиком. В этом случае решение не столь очевидно.

 







Date: 2015-12-13; view: 394; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию