ゲッタ定義
書式
ゲッタ定義は以下の形式です。
アクセス制御 getter 返り値型 ゲッタ名
...
endgetter
アクセス制御から始まりキーワードgetterが続きキーワードendgetterで終わる定義です。
ゲッタ名が異なるゲッタをクラス定義内の任意の場所で任意の数だけ定義することが出来ます。
ゲッタ定義はスコープを生成します。
アクセス制御
ゲッタのアクセスレベルを、キーワードopenかclosedを用いて指定します。
openを指定すると、そのゲッタはクラス定義の外部から呼び出すことができます。
closedを指定すると、そのゲッタはクラス定義の内部でのみ使えます。
getter
ゲッタ定義である事を示すキーワードです。アクセス制御の次に指定する必要があります。
返り値型
キーワードgetterの次に返り値型を指定します。これはゲッタが返すインスタンスのクラスを示しています。
return 文を使って値を返します。この値のクラスが返り値型と一致する必要があります。
ゲッタ名
返り値型の次にゲッタ名を指定します。ゲッタ名の命名規則は識別子と同じです。
例外的にゲッタ名として組み込みクラスの名前を使うことが出来ます。
endgetter
ゲッタ定義の終了を示すキーワードです。
endgetterの代わりに省略形のegを使用できます。egもキーワードであることに注意してください。
定義例
exampleクラスにゲッタを定義します。
1: | class example |
2: | int x; |
3: | int y; |
4: | open fitter example() // デフォルトフィッタ。 |
5: | x = 0; |
6: | y = 0; |
7: | endfitter |
8: | open fitter example(int xx, int yy) // 引数二つのフィッタ。 |
9: | x = xx; |
10: | y = yy; |
11: | ef // 省略形 |
12: | open setter X(int val) |
13: | x = val; |
14: | endsetter |
15: | open getter int X |
16: | return x; |
17: | endgetter |
18: | open setter Y(int val) |
19: | y = val; |
20: | es // 省略形 |
21: | open getter int Y |
22: | return y; |
23: | eg // 省略形 |
24: | endclass |
変数参照の形式を用いてゲッタを呼び出します。
1: | example ex = new example(10, 10); |
2: | int cx = ex.X; // open getter int X |
3: | int cy = ex.Y; // open getter int Y |