Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Объекты можно сравнивать:
§ как равенство и неравенство, если вы не предпринимаете никаких специальных мер. Равенство будет в том случае, если равны все атрибуты объекта.
§ при специальных мерах: использование ключевых слов 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!