009 メンバへのアクセス制御 (private修飾子)003 解答例

public class Calculator {
    private static final double MIN_RESULT = Double.MIN_VALUE;
    private static final double MAX_RESULT = Double.MAX_VALUE;

    private double result;

    // コンストラクタやメソッドなどがここに続く...

    // resultフィールドへのアクセスを制御し、外部から直接アクセスできないようにしてください。
    // 同時に、計算結果が特定の範囲を超えないように制御を追加してください。

    public double getResult() {
        return result;
    }

    public void setResult(double newResult) {
        // もし新しい結果が特定の範囲内である場合にのみ設定
        if (newResult >= MIN_RESULT && newResult <= MAX_RESULT) {
            result = newResult;
        } else {
            System.out.println("計算結果が範囲外です。");
        }
    }

    // 他のメソッドや機能がここに続く...
}

この解答例では、Calculator クラスに result フィールドへのアクセスを制御するためのゲッターとセッターメソッドを導入しました。setResult メソッド内で、外部から与えられた新しい結果の値が特定の範囲内であるかを確認し、範囲外の場合はエラーメッセージを表示して設定を行いません。これにより、Calculator クラスは result フィールドへのアクセスを安全に制御し、同時に計算結果が特定の範囲を超えないようにします。

メソッド内の制御

メソッド内の制御」とは、特定のメソッド内で処理が行われる際に、条件分岐や例外処理などを使って実行の流れを制御することを指します。これは、プログラムが予測可能で安全な動作をするために非常に重要です。以下に、メソッド内での制御に関するいくつかの重要なポイントを解説します。

1. 条件分岐:

条件分岐は、ある条件が満たされた場合とそうでない場合で異なる処理を行うために使用されます。Javaでは if 文や switch 文が条件分岐を実現します。

public void exampleMethod(int number) {
    if (number > 0) {
        System.out.println("正の数です。");
    } else if (number < 0) {
        System.out.println("負の数です。");
    } else {
        System.out.println("ゼロです。");
    }
}

2. 例外処理:

例外処理は、プログラムが異常な状態に遭遇した場合に対処するための仕組みです。Javaでは try-catch ブロックを使用して例外を処理します。

public void exampleMethod(String input) {
    try {
        int number = Integer.parseInt(input);
        System.out.println("変換結果: " + number);
    } catch (NumberFormatException e) {
        System.out.println("数値に変換できません。");
    }
}

3. ループ構造:

ループ構造は、同じ処理を繰り返し行うために使用されます。Javaでは for ループや while ループがあります。

public void exampleMethod(int count) {
    for (int i = 0; i < count; i++) {
        System.out.println("繰り返し処理: " + i);
    }
}

4. 制御フローの変更:

public int divide(int numerator, int denominator) {
    if (denominator == 0) {
        System.out.println("0で割ることはできません。");
        return 0; // メソッドの実行を中断して0を返す
    }
    return numerator / denominator;
}

一部の条件が満たされた場合にメソッドの実行を中断したり、特定の部分から抜け出したりすることも制御の一環です。return 文を使ってメソッドの実行を終了することがその一例です。

これらのメソッド内の制御フローの概念を理解することで、プログラムの安全性や効率性を向上させることができます。条件分岐や例外処理は特に、予期せぬ状況に対処するために重要です。

「009 メンバへのアクセス制御」問題集リスト