new tasks
This commit is contained in:
parent
2a4d27cea0
commit
80737d5a6a
1194 changed files with 15353 additions and 1 deletions
12
Task/Classes/Sather/classes-2.sa
Normal file
12
Task/Classes/Sather/classes-2.sa
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
class MAIN is
|
||||
main is
|
||||
test ::= #CLASSTEST(1, 2, 3);
|
||||
-- the previous line is syntactic sugar for
|
||||
-- test :CLASSTEST := CLASSTEST::create(1, 2, 3);
|
||||
#OUT + test.z + "\n"; -- we can access z
|
||||
test.z := 25; -- we can set z
|
||||
#OUT + test.x + "\n"; -- we can get x
|
||||
-- test.x := 5; -- we cannot set x
|
||||
#OUT + test.getPrivateY(0) + "\n";
|
||||
end;
|
||||
end;
|
||||
21
Task/Classes/Sather/classes.sa
Normal file
21
Task/Classes/Sather/classes.sa
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
class CLASSTEST is
|
||||
readonly attr x:INT; -- give a public getter, not a setter
|
||||
private attr y:INT; -- no getter, no setter
|
||||
attr z:INT; -- getter and setter
|
||||
|
||||
-- constructor
|
||||
create(x, y, z:INT):CLASSTEST is
|
||||
res :CLASSTEST := new; -- or res ::= new
|
||||
res.x := x;
|
||||
res.y := y;
|
||||
res.z := z;
|
||||
return res;
|
||||
end;
|
||||
|
||||
-- a getter for the private y summed to s
|
||||
getPrivateY(s:INT):INT is
|
||||
-- y is not shadowed so we can write y instead of
|
||||
-- self.y
|
||||
return y + s;
|
||||
end;
|
||||
end;
|
||||
Loading…
Add table
Add a link
Reference in a new issue