🙄

【Java Silver勉強】staticから逃げない

2023/10/19に公開
【前置き】
    メモ程度に簡単に書いて置くための物になっていますので、正確な情報をお求めの方は、
    別のサイトをお勧めいたします。

staticとは

インスタンス化なしで、変数の値を保持することが可能になる修飾子です。
プロジェクト共通で同じ値を使用することが可能です。

仕組み

    static int num = 10
    Sample sample = new Sample();


  1. ソースコードを書く
  2. ソースコードをコンパイル
  3. コンパイルされたファイルはクラスファイルになり、static変数・関数は「staticメモリ」に場所を格納される
  4. 通常の変数・関数はインスタンスメモリに格納される。

呼び出し条件

from \ to static関数 static変数 関数 変数
static関数 - × ×
static変数 - × ×
関数 -
変数 -

記述例

public class Val(){
    private static int num = 10;

    public static int getNum(){
        return num;
    }
}

public class Sample(){
    public static void main(String[] args){
        int num = Val.getNum();
        System.out.println(num);
    }
}

まとめ

staticはインスタンス化しない為、メモリを節約したりできるけど、static関数から通常の関数にアクセスすることができないから、ちょっと不便な場所がある。

Discussion