Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Сравнение объектов



Объекты можно сравнивать:

§ как равенство и неравенство, если вы не предпринимаете никаких специальных мер. Равенство будет в том случае, если равны все атрибуты объекта.

§ при специальных мерах: использование ключевых слов MAP и ORDER. Для объекта может быть определено только одно их этих двух ключевых слов. Эти ключевые слова должны предшествовать ключевому слову member и использоваться только с функциями.

Если вы используете ключевое слово MAP, то функция данного метода должна возвращать или char или real. Сравнение будет происходить по значению, которое возвращает функция. Сам оператор сравнения будет вызывать два метода (для каждой функции по одному).

При использовании ключевого слова ORDER метод или функция должны возвращать целое (integer) значение и это значение должно быть:

§ –1, если один объект (Self-объект) меньше другого объекта (передаваемого в функцию в качестве параметра);

§ 1, если Self>объекта;

§ 0, если объекты между собой равны.

Пример

CREATE TYPE body Rational AS

MAP member Function Convert Return real IS

begin

Return num/den;

end;

Переменные num и den – это атрибуты, которые были объявлены в типе объекта (имели тип integer). Сравниваться будет результат этой функции для двух объектов.

Пример

CREATE TYPE body Customer AS

ORDER member Function Match (c Customer) Return integer IS

begin

If id<c.id then Return –1;

ElsIf id>c.id then return 1;

Else return 0;

End If;

end;

end;

Конструктор в PL/SQL всегда нужно вызывать явно.

Пример

Declare

r Complex; - задекларировали объект

Begin

r:=Complex(30,40); - явно вызван конструктор

End;





Дата публикования: 2015-02-18; Прочитано: 216 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...