クラス内にあるメソッドについても、フィールドと同じようにクラスメソッドと呼ぶような宣言の仕方があります。
クラスフィールドと同じように「static」という修飾子をつけて表します。
例として、下記の「countUpTestD」というメソッドをクラスフィールドにしています。
class TestClassSub
{
//フィールドの初期化
int TestA = 10;
int TestB = 30;
static int TestC = 20;
int TestD = 40;
TestClassSub(int a, int b) {
//やっていることは「setTest」メソッドを同じ
TestA = a;
TestB = b;
}
TestClassSub() {
//引数なしコンストラクタ用
}
void setTest(int a, int b){
TestA = a;
TestB = b;
}
int sumAB(){
return TestA + TestB;
}
int countUpTestC(){
return TestC++;
}
void countUpTestC2(){
TestC++;
}
static int countUpTestD(){
return TestD++;
}
}
クラスメソッドは、別名「staticメソッド」という場合もある。
staticをつけずに宣言したメソッドは「インスタンスメソッド」や「staticではない(通常の)メソッド」などと呼び、クラスメソッドと区別をします。
クラスメソッドは特定のインスタンスに関連していな為、インスタンスが生成されていない状態でも呼び出すことができます。
他のクラスから呼び出すときには次のように書きます。
クラス名.メソッド名(引数)