DEV Community

TANIAOKA, Akihiro
TANIAOKA, Akihiro

Posted on

6章8

このJavaのコードには、2つのクラスがあります。Sampleクラスには、2つのIntegerオブジェクトを受け取り、それらを加算して結果を返すaddメソッドがあります。Mainクラスにはmainメソッドがあり、プログラムの実行が始まる場所です。

Mainクラスのmainメソッドでは、Sampleオブジェクトを作成し、addメソッドを呼び出していますが、addメソッドには2つの引数が必要であるにもかかわらず、1つの引数10しか渡していません。これが正しく動作するためには、addメソッドに2つのInteger引数を渡す必要があります。

選択肢を見ると、答えは「D. コンパイルエラーが発生する」です。なぜなら、addメソッドには2つの引数が必要であるのに、1つの引数しか渡されていないからです。Javaのコンパイラはメソッド呼び出しにおいて必要な引数の数と型が正しくない場合、コンパイルエラーを発生させます。

この場合、System.out.println(s.add(10)); の行を修正して、適切な数の引数をaddメソッドに渡す必要があります。例えば、もう一つのIntegerを追加して System.out.println(s.add(10, 20)); のようにすることで、コンパイルエラーを解消できます。

追記

// Sampleクラスの定義。
public class Sample {
    // addメソッドは、2つのInteger型の引数を取り、それらを足し合わせた結果を返します。
    public int add(Integer a, Integer b) {
        // 2つの引数の合計値を返します。これはint型の値です。
        return a + b; 
    }
}

// Mainクラスはアプリケーションのエントリーポイントを持っています。
public class Main {
    // mainメソッドはJavaアプリケーションの起点です。
    public static void main(String[] args) {
        // Sampleクラスのインスタンスを作成します。
        Sample s = new Sample();
        // addメソッドを呼び出し、整数10を引数として渡します。
        // しかし、addメソッドは2つのIntegerを引数として期待しているため、
        // これはコンパイルエラーを引き起こします。2番目の引数が不足しています。
        System.out.println(s.add(10));
    }
}
Enter fullscreen mode Exit fullscreen mode

このコードの問題点は、addメソッドが2つのInteger引数を必要とするところ、呼び出し側で1つの引数(整数10)しか渡していない点です。Javaでは、メソッドを呼び出す際にはメソッド定義に合致する正確な数と型の引数を提供する必要があります。ここではその条件を満たしていないため、コンパイルエラーが発生します。それが答えD「コンパイルエラーが発生する」の理由です。

Top comments (0)