43 lines
654 B
Plaintext
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.
|