静的フィールドとは〜Javaの基礎〜

xmtrading

Javaの基礎

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での静的フィールドの基本的な使用方法とその利点について理解を深めることができました。


コメント

タイトルとURLをコピーしました