Время жизни локальных переменных ограничено
Время жизни локальных переменных ограничено временем выполнения метода или триггера.
У объектных типов могут существовать конструкторы и деструкторы - методы, вызываемые, соответственно, при создании и уничтожении объектов.
Пример. Реализуем метод DoSale типа Sales
ALTER CLASS Sales REALIZE DoSale AS BEGIN IF DateOfAction NOT IS NULL THEN //если отгрузка уже сделана IF DateOfAction = DateOfSale Then Return TRUE; //и сделана тем же числом - OK! ELSE RETURN FALSE; //отгрузка сделана другим числом - ошибка ELSE //отгрузка еще не сделана IF IsPayed THEN BEGIN DateOfAction := Date Of Sale; RETURN TRUE; //продажа уже оплачена - ОК END ELSE RETURN FALSE ;//отгрузка невозможна (нет оплаты) - Ошибка END;
Для объектов определены операции, позволяющие определить тип этих объектов. В связи с тем, что в R*O системе поддерживается наследование объектных типов, данное требование требует некоторых разъяснений. Существуют две операции, позволяющие определить тип объекта. Первая операция
o IS t (где
o - ссылка на объект, а
t - имя типа), возвращает истину, если объект, определяемый ссылкой
o,
является объектом данного типа. Подразумевается, что, в случае наследования, объект любого типа-наследника является также объектом базового типа. Из этого, в частности, следует, что операция
o IS Object (где
Object - предопределенный базовый тип) вернет истину для любого объекта. Вторая операция,
o OF t, возвращает истину, когда объект, определяемый ссылкой
o, был создан как объект класса
t (т.е. этот объект был создан операцией
new t). Соответственно,
o OF Object всегда будет ложью.
Содержание Назад Вперед