010 メソッドのオーバーロード 007 解答例

public class Animal {

    // 動物の音を返すメソッド
    public static String makeSound() {
        return "Generic Animal Sound";
    }

    // 音の大きさに応じた音を返すメソッド(オーバーロード)
    public static String makeSound(int volume) {
        if (volume <= 0) {
            return "No sound";
        } else if (volume <= 5) {
            return "Soft animal sound";
        } else {
            return "Loud animal sound";
        }
    }

    public static void main(String[] args) {
        // 通常の動物の音
        System.out.println("Normal sound: " + makeSound()); // 出力: Normal sound: Generic Animal Sound

        // 音の大きさに応じた動物の音
        System.out.println("Soft sound: " + makeSound(3)); // 出力: Soft sound: Soft animal sound
        System.out.println("Loud sound: " + makeSound(8)); // 出力: Loud sound: Loud animal sound
    }
}

このコードでは、Animal クラスが通常の動物の音を返す makeSound メソッドと、音の大きさに応じた音を返す makeSound メソッド(オーバーロード)を提供しています。メインメソッドではこれらのメソッドを呼び出し、結果を表示しています。なお、音の大きさによって返す音が変化するようにシンプルな実装例を示していますが、実際の使用ケースに合わせて変更することができます。

ポイント:

  1. makeSoundメソッド:
    • makeSound メソッドは、何も受け取らずに動物の通常の音を返すメソッドです。
    • このメソッドでは、”Generic Animal Sound” というデフォルトの音声が返されます。
  2. makeSoundメソッド(オーバーロード):
    • makeSound メソッドのオーバーロードとして、音の大きさ(音量)を受け取り、その音量に応じた音を返すメソッドを追加しています。
    • 音の大きさによって異なるメッセージが返されます。例えば、音量が 0 より小さい場合は “No sound”、5 以下の場合は “Soft animal sound”、それ以上の場合は “Loud animal sound” となります。
  3. mainメソッド:
    • main メソッドでは、通常の動物の音と音の大きさに応じた動物の音を表示しています。
    • 各メソッドが正しく動作しているか確認するために、期待される出力と実際の出力を比較します。

これらのポイントをもとに、動物の音を表現する Animal クラスを実装し、オーバーロードを利用して異なるシナリオに対応することができます。

「010 メソッドのオーバーロード」問題集リスト