Javaキーワードの理解:静的フィールド
Javaプログラミング言語における「静的フィールド(Static Field)」とは、クラスレベルで共有される変数のことを指します。静的フィールドは、そのクラスのすべてのインスタンス間で共有されるため、特定のインスタンスに属さず、クラス自体に属します。static
キーワードを使用して宣言されます。この特性により、静的フィールドはクラス変数とも呼ばれます。
静的フィールドの特徴
- クラスレベルで共有: 静的フィールドはクラスのすべてのインスタンス間で共有され、個々のインスタンスには属しません。
- インスタンス化不要: 静的フィールドはクラスがロードされるときに初期化されるため、オブジェクトをインスタンス化せずともアクセスできます。
- メモリ効率: 同じデータを共有するため、メモリ使用量が削減されます。
Javaでの静的フィールドの使用例
カウンターの例
ここでは、Counter
クラスを作成し、そのクラスがインスタンス化されるたびにカウントアップする静的フィールドcount
を定義します。
public class Counter {
// 静的フィールド
static int count = 0;
// コンストラクタ
public Counter() {
count++; // インスタンス化のたびにカウントアップ
}
// カウンター値を取得する静的メソッド
static int getCount() {
return count;
}
public static void main(String[] args) {
new Counter();
new Counter();
new Counter();
// 静的フィールドcountの値を出力
System.out.println("Counter: " + Counter.getCount()); // 出力: Counter: 3
}
}
この例では、Counter
クラスが3回インスタンス化されるたびに、静的フィールドcount
がインクリメントされます。getCount()
メソッドを通じてcount
の値を取得し、プログラムの最後でその値(この場合は3)を出力しています。静的フィールドcount
はクラスレベルで共有されるため、すべてのCounter
インスタンスによってその値が更新されます。
まとめ
静的フィールドは、クラスのすべてのインスタンス間で共有される変数であり、クラスがロードされるときに初期化されます。これにより、データをクラスレベルで共有することが可能になり、メモリ使用量の削減や、インスタンス化せずにアクセスすることができる利点があります。上記の例を通じて、Javaでの静的フィールドの基本的な使用方法とその利点について理解を深めることができました。
コメント