🎯

【Java】クラス解説7・staticについて

2024/01/05に公開

staticについて

クラスに関連付けられ、そのクラス自体に属します。インスタンスの作成なしに、クラス名を使って直接アクセスできます。

staticについてのコード例

public class Main {
    public static void main(String[] args) {
        // インスタンス化しないので下記をコメントアウトする。
        // MyClass obj = new MyClass();
        
        // クラス名を使ってstatic変数にアクセス
        int value = MyClass.staticVariable;
        System.out.println(value); // 出力結果 -> 10
        
        // クラス名を使ってstaticメソッドを呼び出し
        MyClass.staticMethod(); // 出力結果 -> This is a static method.
    }
}

class MyClass {
    // static変数
    public static int staticVariable = 10;
    
    // staticメソッド
    public static void staticMethod() {
        System.out.println("This is a static method.");
    }
}

static変数についての解説

public static int staticVariable = 10;

MyClassクラスにおいて、int型のstaticな変数staticVariableに10を代入します。

int value = MyClass.staticVariable;
System.out.println(value);

Mainクラスにおいて、int型の変数valueに、クラス名MyClassを使ってstatic変数staticVariableにアクセスし、10を代入します。
標準出力に変数value(=10)を出力します。


staticメソッドについての解説

public static void staticMethod() {
        System.out.println("This is a static method.");
    }

MyClassクラスにおいて、戻り値なし(void)のstaticなメソッドstaticMethodを定義し、
処理内容は、標準出力に"This is a static method."を出力するというものになります。

MyClass.staticMethod();

Mainクラスにおいて、クラス名MyClassを使ってstaticメソッドstaticMethodを呼び出します。


public class Main {
    public static void main(String[] args) {
        // インスタンスを生成
        MyClass obj = new MyClass();
        
        // インスタンスを使ってインスタンス変数にアクセス
        int value = obj.staticVariable;
        System.out.println(value); // 出力結果 -> 10
        
        // インスタンスを使ってインスタンスメソッドを呼び出し
        obj.staticMethod(); // 出力結果 -> This is a static method.
    }
}

class MyClass {
    // インスタンス変数
    public int staticVariable = 10;
    
    // インスタンスメソッド
    public void staticMethod() {
        System.out.println("This is a static method.");
    }
}

Discussion