You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CREATE OR REPLACETYPERectangleAS OBJECT(
-- Declaració dels atributs del Type Rectangle
coordenadaX NUMBER,
coordenadaY NUMBER,
base FLOAT,
altura FLOAT,
-- Declaració abstracte dels mètodes del Type Rectangle
MEMBER PROCEDURE toString,
MEMBER PROCEDURE calcArea,
MEMBER FUNCTION getArea RETURN FLOAT,
MEMBER PROCEDURE setBase(x FLOAT)
);
Creació del TYPE BODY Rectangle
CREATE OR REPLACETYPEBODY Rectangle AS-- Mètode per imprimir els atributs del Rectangle per pantalla
MEMBER PROCEDURE toString IS
BEGINDBMS_OUTPUT.PUT_LINE('El rectangle es troba a la posició ('|| TO_CHAR(SELF.coordenadaX) ||','|| TO_CHAR(SELF.coordenadaY) ||')');
END;
-- Mètode per calcular l'àrea del Rectangle i imprimir-la per pantalla
MEMBER PROCEDURE calcArea IS
area FLOAT;
BEGIN
area :=SELF.base*SELF.altura;
DBMS_OUTPUT.PUT_LINE('L''àrea del rectangle és: '|| TO_CHAR(area));
END;
-- Mètode que retorna l'àrea
MEMBER FUNCTION getArea RETURN FLOAT IS
BEGIN
RETURN SELF.base*SELF.altura;
END;
-- Mètode per canviar el valor de l'atribut base del Rectangle
MEMBER PROCEDURE setBase(x FLOAT) IS
BEGINSELF.base := x;
END;
END;
Bloc PL/SQL que actua com a "Main"
-- Bloc PL/SQL Main
DECLARE
r1 Rectangle;
num1 FLOAT;
BEGIN
r1 := new Rectangle(5,5,10,15);
r1.toString();
r1.calcArea();
num1 :=r1.getArea();
DBMS_OUTPUT.PUT_LINE(num1);
r1.setBase(4);
r1.calcArea();
END;