クラスに属するメンバーを定義する「static(静的)」とは?
Javaで変数やメソッドを定義するときに使うキーワードのひとつが static(静的) です。
static を付けることで、インスタンスを生成せずに使えるメンバーを定義できます。
staticとは?
static は、クラスに属するメンバー(変数・メソッド)を定義するための修飾子です。
通常のメンバー(インスタンスメンバー)はインスタンスごとに存在しますが、staticなメンバーはクラス全体で共有されます。
staticフィールド(静的変数)
public class Counter {
public static int count = 0; // クラス全体で共有
}
Counter.count++; // インスタンス不要でアクセスできる
System.out.println(Counter.count);
staticメソッド(静的メソッド)
public class MathUtil {
public static int square(int x) {
return x * x;
}
}
int result = MathUtil.square(5); // → 25
staticメソッドは、インスタンスを作らずに呼び出せるため、ツール的なメソッドに向いています。
mainメソッドもstatic
public static void main(String[] args) {
// Javaアプリのエントリーポイント
}
mainメソッドが static
なのは、Java実行時にインスタンスがなくても呼び出す必要があるためです。
staticの特徴まとめ
- クラス名から直接アクセスできる(例:
ClassName.method()
)
- インスタンスを生成しなくても使える
- staticメソッド内ではthisや非staticメンバーを使えない
- Javaのユーティリティクラスに多く使われている(例:
Math
、Collections
)
staticの注意点
- 共有されるため、状態の持ちすぎには注意
- オブジェクトごとの処理が必要な場面では使わない
- staticメソッドではインスタンスメソッドを呼び出せない
まとめ
static は、クラス単位で共通して使えるメンバーを定義するためのキーワードです。
インスタンスを使わずに便利な処理を提供したいときや、全体で共有したい値があるときに活躍します。
使いどころをしっかり理解して、設計に役立てていきましょう!