创建一个对象,含有3个属性,1个构造函数
create or replace type rectangle as object
(
length number,
width number,
area number,
--定义一个构造函数,含有2个参数
constructor function rectangle(length number, width number)
return self as result
);
create or replace type body rectangle
as
--实现2个参数的构造函数
constructor function rectangle(length number, width number)
return self as result as
begin
self.length := length;
self.width := width;
self.area := length * width;
return;
end;
end;
--调用
declare
r1 rectangle;
r2 rectangle;
r3 rectangle := rectangle(20, 20);
begin
--我们可以调用默认3个参数的构造函数(因为定义了3个属性)
r1 := new rectangle(10, 20, 500);
dbms_output.put_line(r1.area);
r2 := new rectangle(10, 20);
dbms_output.put_line(r2.area);
dbms_output.put_line(r3.area);
end;