フィールド宣言

フィールドはクラスの個々のインスタンスの状態を保持するための変数です。


目次:


書式

クラス名

フィールド名

セミコロン

特徴

書式

フィールド宣言は以下の形式です。


クラス名 フィールド名;


これは宣言文です。

フィールド名が異なりクラス定義内の他のメンバー定義の外ならば、任意の場所で幾つでも宣言することが出来ます。

宣言されたフィールドはクラスのスコープ内で参照可能です。したがって、クラス定義の任意の場所で参照できます。

クラス名

クラス名はフィールドに拘束されるクラスです。

Riceは強く型付けされた言語ですので、フィールドや変数を名前だけで宣言することはできません。クラスの種類と名前の組が必要になります。

フィールド名

フィールド名はフィールドにアクセスするために使う識別子です。命名規則は一般の識別子と同じです。

他のメンバと衝突しないユニークな名前を指定してください。名前が衝突した場合は例外が発生するか名前の隠ぺいが起こります。

セミコロン

フィールド宣言の終了はセミコロンで表します。セミコロンはRiceで使用される一般的な文の終了記号です。

特徴

Riceのフィールドには幾つかの特徴があります。


宣言はできるが定義はできません。

未知のクラスを宣言することができます。

クラス定義内だけでアクセスできます。

宣言と定義

Riceのフィールドは宣言と同時に定義することが出来ません。


int intField = 10;


このような定義文は認められません。フィールドの初期化はフィッタで行います。

フィールド宣言は名前とクラスを関連付けるためだけの単なる場所取りです。

未知のクラスの宣言

未知のクラスのフィールドを宣言できます。

後で定義されるクラスをフィールドとして先に宣言すると、システムがdummyクラスを仮置きします。dummyクラスは仮置き専用のクラスです。

未知のクラスの定義が終了しても、仮置きされたdummyクラスはそのままです。

つまり、このようなフィールドを持つクラスは不完全な状態になります。使用前にフィッタを使って完全な状態に初期化してください。

アクセス制御

フィールド以外のメンバーは、定義の先頭で適切なキーワード、openかclosed、を使うことによってアクセスレベルを制御出来ます。

openメンバーはクラス定義の外部から呼び出せます。closedメンバーは外部から呼び出せません。

フィールドのアクセスレベルはclosedで固定されています。この様なアクセス制御のための記法を持ちません。フィールドに直接アクセスできるのはクラス定義の内部だけです。

exampleクラスとcircularクラスを定義します。

4行目でcircularクラスがフィールドとして宣言されています。これが"未知のクラスの宣言"になります。

1:

class example

2:

int x;

3:

int y;

4:

circular cirField; // 未知のクラス。dummy クラスが仮置きされます。

5:

open fitter example(circular cir) // フィッター。

6:

cirField = cir;

7:

endfitter

8:

endclass

9:

10:

class circular

11:

bool boolFied;

12:

endclass

次の様にすればexampleクラスを完全な状態に初期化できます。

1:

circular cir;

2:

example ex = new example(cir); // cirFieldをcircularに置き換える。

Copyright © Rice All rights reserved.