スタティック変数
クラスに関連付けられた変数
そのクラスのすべてのインスタンスによって共有される特殊な変数
インスタンス変数とは異なり、スタティック変数は、クラスレベルでのデータを表現するために使用する
スタティック変数は、クラス内に定義され、staticキーワードで修飾される
それにより、スタティック変数はクラス自体に関連付けられ、各インスタンスではなくクラス自体に属す
→クラスのすべてのインスタンスで同じ値を共有し、変更が反映される
スタティック変数の特徴
クラスレベルの変数
各インスタンスではなくクラス自体に属す
クラスのすべてのインスタンスで同じ値を共有
インスタンスが生成される前に初期化される
→プログラムが実行される間ずっと存在する
インスタンスメソッド内から参照できる
直接インスタンス変数にアクセスはできない
スタティック変数
クラス内の共有データやカウンター、定数、設定値など、インスタンス間で共通の情報を保持するために使用される
他のメンバ変数やメソッドからも参照できる
→共有のデータを追跡するために便利
Javaでのスタティック変数の宣言と使用例
public class Counter {
static int count; // スタティック変数 count
public Counter() {
count++;
}
public static void main(String[] args) {
Counter c1 = new Counter();
Counter c2 = new Counter();
Counter c3 = new Counter();
System.out.println("Count: " + Counter.count); // クラス名を使ってスタティック変数にアクセス
}
}
Counterクラス内にcountというスタティック変数を宣言
各インスタンスが生成されるたびに、コンストラクタ内でcountが増加
main()メソッド内では、Counter.countを使ってスタティック変数にアクセスし、最終的なカウントの値を表示
スタティック変数はクラス全体で共有される
→1つのインスタンスの変更が他のインスタンスにも反映される