[Java] static変数 (クラス変数)とは

static変数について整理する。


static変数の特徴

staticに関しては、インスタンスと対比して考えることができる。


staticを使う時

staticを使って作られた変数を呼び出す時、クラスからインスタンスを作らなくても呼び出すことができる。

また、クラスAでインスタンスaとインスタンスbが2つ作られた時、クラスAのクラス変数はインスタンスaとインスタンスbにも共有される。


staticを使わない時

staticを使わず作られた変数を呼び出す時、クラスからインスタンスを作って呼び出さなくてはいけない。

staticを使わず作られた変数はインスタンス変数と呼ばれる。


Static変数の使い方

Static変数の使い方についてまとめる。


static変数の宣言

アクセス修飾子 static 型名 変数名

//Example
public static void main(String[] args)


static変数の呼び出し方

クラス名.変数名

static変数の呼び出し方の例をあげる。

staticをつけて変数を宣言して、Mountain.nameで呼び出す。

public class Main{
    public static void main(String[] args){
      System.out.println(Mountain.name);
    }
}

class Mountain{
    public static String name = "鳳凰山";
}
   
//出力結果
鳳凰山


また、クラス変数は、同じクラスで作ったインスタンスでも呼び出せる。

public class Main{
    public static void main(String[] args){
    Mountain mountain1 = new Mountain();
    System.out.println(mountain1.name);
    }
}

class Mountain{
    public static String name = "鳳凰山";
}

//出力結果
鳳凰山


呼び出せない例

もし変数を宣言する時にstaticをつけないで、クラスから呼び出そうとするとエラーが出る。

public class Main{
    public static void main(String[] args){
      System.out.println(Mountain.name);
    }
}

class Mountain{
    public String name = "鳳凰山";
}

//実行結果
Main.java:3: error: non-static variable name cannot be referenced from a static context
      System.out.println(Mountain.name);


全体像を把握する

下記にJavaやwebアプリケーションについての記事をまとめた。


[st-card myclass=”” id=3431 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]


コンピューターについての全体像も把握しておくと、プログラミングのさらなる理解に役立つ。


[st-card myclass=”” id=4587 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]