static 修飾子
更新 : 2007 年 11 月
クラス メンバが、クラスのインスタンスではなくクラスに属していることを宣言します。
static statement
引数
- statement
必ず指定します。クラス メンバの定義。
解説
static 修飾子は、メンバがクラスのインスタンスではなくクラス自身に属していることを示します。クラスのインスタンスが複数作成された場合でも、static メンバのコピーは、指定したアプリケーションに 1 つしか存在しません。static メンバには、インスタンスへの参照ではなく、クラスへの参照を使用することでアクセスできます。ただし、クラス メンバの宣言では、this オブジェクトを使用して static メンバにアクセスできます。
static 修飾子は、クラスのメンバに指定できます。クラス、インターフェイス、およびインターフェイスのメンバには、static 修飾子を使用できません。
static 修飾子は、継承の修飾子 (abstract および final) またはバージョン セーフ修飾子 (hide および override) と共に使用することはできません。
static 修飾子と static ステートメントを混同しないでください。static 修飾子は、メンバがクラスのインスタンスではなくクラス自身に属していることを示します。
使用例
次のコードは、static 修飾子の使用例です。
class CTest {
var nonstaticX : int; // A non-static field belonging to a class instance.
static var staticX : int; // A static field belonging to the class.
}
// Initialize staticX. An instance of test is not needed.
CTest.staticX = 42;
// Create an instance of test class.
var a : CTest = new CTest;
a.nonstaticX = 5;
// The static field is not directly accessible from the class instance.
print(a.nonstaticX);
print(CTest.staticX);
このプログラムの出力は次のようになります。
5
42