012 staticメンバ(static変数) 002 解答例

public class Countdown {
    // static変数 - カウントダウンの初期値を表す変数
    private static int initialValue;

    // インスタンス変数 - カウントダウンの現在の値を表す変数
    private int currentValue;

    // コンストラクタ - インスタンス変数の初期化
    public Countdown() {
        // カウントダウンの初期値を代入し、現在の値を初期化
        this.currentValue = initialValue;
    }

    // インスタンスメソッド - カウントダウンを実行するメソッド
    public void performCountdown() {
        if (currentValue > 0) {
            currentValue--;
            System.out.println("Countdown: " + currentValue);
        } else {
            System.out.println("Countdown reached zero.");
        }
    }

    // クラスメソッド - カウントダウンの初期値を設定するメソッド
    public static void setInitialValue(int value) {
        initialValue = value;
    }

    // クラスメソッド - カウントダウンの初期値を取得するメソッド
    public static int getInitialValue() {
        return initialValue;
    }

    public static void main(String[] args) {
        // テスト
        Countdown.setInitialValue(5);

        Countdown counter1 = new Countdown();
        counter1.performCountdown();
        counter1.performCountdown();

        Countdown counter2 = new Countdown();
        counter2.performCountdown();
    }
}

このクラスを使って、mainメソッド内でテストが行われています。setInitialValueメソッドで初期値を設定し、各インスタンスでperformCountdownメソッドを呼び出すことで、正しくカウントダウンが行われることを確認できます。

「012 staticメンバ」問題集リスト