クラス内の変数や関数に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のアクセス方法を使えば、
クラスのインスタンスを作成しなくても
いきなりアクセスできるのが特徴です。