next up previous contents
Next: 11.8 クリエータNew Up: 11. メソッドと秘伝 Previous: 11.6 メソッドの追加定義

11.7 クラスメソッド

あるクラスに対して定義されているメソッドで、そのクラスのメンバを全く参 照しない、あるいは、参照しているメンバが、すべてstaticメンバの場 合、そのメソッドは、インスタンスからだけでなく、クラスからも呼び出すこ とができます。


class AllStatic {

static a = 10, b = 20, c = 30 ;
method Print() { println ("a = ", a, " b = ", b, " c = ", c);}
}

AllStatic->Print() ;

このように、クラスからでも呼び出せるメソッドをクラスメソッドといいます。

クラスメソッドは、static変数の初期化が単純な初期化式では、まかな い切れない時などに利用できます。

クラスメソッド内でのthisの意味するものは、クラス経由で呼び出すか、 インスタンス経由で呼び出すかによって異なります。

クラス名->メソッド(引数...)

で呼び出したときは、thisは、クラスそのものを示しますが、

インスタンス名->メソッド(引数)

で呼び出したとき、thisはインスタンスを指すことになります。


next up previous contents
Next: 11.8 クリエータNew Up: 11. メソッドと秘伝 Previous: 11.6 メソッドの追加定義
Tetsuo Ono
1998-11-05