あるクラスに対して定義されているメソッドで、そのクラスのメンバを全く参 照しない、あるいは、参照しているメンバが、すべて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はインスタンスを指すことになります。