MODULE TClassMethod; (* Class methods: a hidden THIS receiver, field access in bodies, value and VAR formals, and a value-returning method. Exit 7. *) VAR ExitCode : INTEGER; TYPE CLASS Point; x, y : INTEGER; PROCEDURE Set(a, b : INTEGER); PROCEDURE Sum() : INTEGER; PROCEDURE CopyX(VAR dst : INTEGER); END Point; CLASS IMPLEMENTATION Point; PROCEDURE Set(a, b : INTEGER); BEGIN x := a; y := b END Set; PROCEDURE Sum() : INTEGER; BEGIN RETURN x + y END Sum; PROCEDURE CopyX(VAR dst : INTEGER); BEGIN dst := x END CopyX; END Point; VAR p : Point; got : INTEGER; BEGIN p.Set(3, 4); p.CopyX(got); (* VAR formal through the receiver *) IF got = 3 THEN ExitCode := p.Sum() ELSE ExitCode := 100 END END TClassMethod.