static変数
static変数(静的変数)はクラス内に取られる変数で、 そのクラスのインスタンスから共通のものとして扱うことができます。
例
Takoyakiクラスにはkosuとajiの2つの変数があります。
行番号表示/非表示切替
1 public class Takoyaki
2 {
3 static int kosu;
4 String aji;
5
6 Takoyaki(String a)
7 {
8 aji = a;
9 }
10
11 public static void main(String[] args)
12 {
13 new Takoyaki("ソース");
14 new Takoyaki("しょうゆ");
15 }
16 }
ajiはインスタンスの属性であり、 インスタンス内に変数が取られます。
一方static修飾子がつけられた変数kosuはクラス内に取られます。
図で示すとこのようになります。 クラス内に点線で囲まれた変数はインスタンスの型紙として用いられるだけで、 ここに変数が取られるわけではありません。
この変数を使ってTakoyakiインスタンスが作られた個数を数えることができます。
- 変数宣言のところで値を0に初期化しておきます。
- コンストラクタが呼ばれたらkosuを1増やします。
いくつかコンストラクタを呼び出した後、変数kosuの値を出力して確かめることができます。
行番号表示/非表示切替
1 public class Takoyaki
2 {
3 static int kosu = 0;
4 String aji;
5
6 Takoyaki(String a)
7 {
8 kosu++;
9 aji = a;
10 }
11
12 public static void main(String[] args)
13 {
14 new Takoyaki("ソース");
15 new Takoyaki("しょうゆ");
16 System.out.println( kosu );
17 }
18 }