RosettaCodeData/Task/Classes/Zonnon/classes.zonnon

43 lines
654 B
Plaintext

module Graphics;
type
{ref,public} (* class *)
Point = object(ord,abs: integer)
var
(* instance variables *)
{public,immutable} x,y: integer;
(* method *)
procedure {public} Ord():integer;
begin
return y
end Ord;
(* method *)
procedure {public} Abs():integer;
begin
return x
end Abs;
(* constructor *)
begin
self.x := ord;
self.y := abs;
end Point;
end Graphics.
module Main;
import Graphics;
var
p: Graphics.Point;
procedure Write(p: Graphics.Point);
begin
writeln('[':1,p.x:3,',':1,p.y:3,']':1)
end Write;
begin
p := new Graphics.Point(12,12);
Write(p);
writeln("Abs: ":4,p.Abs():3," Ord: ":5,p.Ord():3);
end Main.