Java static 静的メンバ変数

クラス内の変数や関数にstaticを付ける事ができます。

変数にstaticを付けると静的メンバ変数となります。
関数にstaticを付けると静的メンバ関数となります。

ここでは、静的メンバ変数の説明をしています。
静的メンバ関数の説明はコチラです。


静的メンバ変数

クラスの中にstatic付きの変数を宣言すれば、
静的メンバ変数となります。

クラス変数staticフィールドと呼ぶ場合もあります。

この静的メンバ変数は、
同じクラスの複数のインスタンスがあっても
1つしか存在しない変数です。

複数のインスタンスがある場合、静的メンバ変数は共有されます。

記述例

class Cstaticparam {
      public static int sdata;
}

クラスのメンバ変数にstaticを付けるだけです。

使用例

class Cstaticparam {
      public static int sdata;
}

public class Cmain {
      public static void main(String[] args) {

            Cstaticparam a = new Cstaticparam();
            Cstaticparam b = new Cstaticparam();

            a.sdata = 10;
            b.sdata = 20;
            Cstaticparam.sdata = 30;
      }
}

この例は、クラスCstaticparamの
静的メンバ変数:sdataに代入する例です。

3つの代入が行われていますが、
全て同じ変数に代入している事になります。

クラスのメンバ変数なのだから、
その静的メンバ変数が存在するクラスの
インスタンスを複数つくれば、
別々に複数個の静的メンバ変数が作られて、複数個使える。

と思うかもしれませんが、そうではありませんので注意して下さい。

アクセス方法は、次の2つです。

1.インスタンス名.静的メンバ変数名 (例 a.sdata)

2.クラス名.静的メンバ変数名 (例 Cstaticparam.sdata)

2のアクセス方法を使えば、
クラスのインスタンスを作成しなくても
いきなりアクセスできる
のが特徴です。