メインコンテンツにスキップ
モジュール 2 · レッスン 2 / 2コース内の 4/14~12 min
モジュールのレッスン (2/2)

メソッドとオーバーロード

メソッドはオブジェクトの動作を定義します。これらは、オブジェクトのインスタンス フィールドまたは受信パラメータを操作する、クラス内で宣言された関数と考えることができます。

メソッドの定義

Java のメソッドは次のもので構成されます。

  1. アクセス修飾子 (例: public、private)。
  2. 戻り値の型 (例: int、String、または何も返さない場合は void)。
  3. camelCase の メソッド名。
  4. パラメータは括弧で囲まれています。
  5. 中括弧で囲まれた メソッド本体。
Java
class Person {
    String name;

    public Person(String name) {
        this.name = name;
    }

    // Method with return type String
    public String greet() {
        return "Ciao, mi chiamo " + name;
    }
}

メソッドの呼び出し

作成されたオブジェクトのメソッドを呼び出すには、ドット表記法 . を使用します。

Java
public class Main {
    public static void main(String[] args) {
        Person p = new Person("Marco");
        String message = p.greet(); // Calling the method
        System.out.println(message);
    }
}

メソッドのオーバーロード

Java では、同じクラス内の 2 つ以上のメソッドは、異なるパラメータ リスト (パラメータの数、順序、または種類) を持っている限り、同じ名前を持つことができます。この概念は オーバーロード として知られています。

コンパイラは、呼び出し中に渡された引数を分析して、どのメソッドを呼び出すかを決定します。

Java
class Printer {
    // Method to print an integer
    public void printValue(int number) {
        System.out.println("Intero: " + number);
    }

    // Overloaded method to print a string
    public void printValue(String text) {
        System.out.println("Testo: " + text);
    }
}

値によるパラメータの受け渡し

Java では、すべてのパラメータは 値渡し (値渡し) で渡されます。これは、引数をメソッドに渡すと、Java が変数の値のコピーを作成し、それをメソッドに渡すことを意味します。

  • プリミティブ型の場合、メソッド内で変更されても、メソッド外の元の値は変わりません。
  • オブジェクト/参照の場合、オブジェクトへの参照がコピーされます。これは、元のオブジェクトが指すメモリ アドレスを変更することはできませんが、その内部状態 (フィールドなど) を変更することができ、その変更が外部から見えるようになるということを意味します。

オーバーロードの制限: 戻り値の型

戻り値の型のみに基づいてメソッドをオーバーロードすることはできないことに注意してください。たとえば、次のコードはコンパイル エラーを引き起こします。

Java
class Example {
    // ERROR: The signature of the two methods is considered identical
    public int getNumber() { return 42; }
    public double getNumber() { return 42.0; }
}

コンパイラーは、パラメーターのみに基づいてメソッドを区別し、コンパイル時に呼び出すバージョンを決定する必要があります (オーバーロードはコンパイル時に解決されます)。


自分で試してみてください

運動#java.m2.l2.e1
試行回数: 0読み込み中…

2 つの数値の合計を返す public int add(int a, int b) メソッドを Calculator クラスに追加します。 main メソッドで、calc オブジェクトに対してこのメ​​ソッドを呼び出し、結果を整数変数に割り当てます。

エディターを読み込み中…
ヒントを表示

メソッドを「public int add(int a, int b) { return a + b;」として宣言します。 }` を作成し、main メソッドで `int result = calc.add(5, 10);` として呼び出します。

3 回の試行後に解決策が利用可能になります

運動#java.m2.l2.e2
試行回数: 0読み込み中…

2 つの double パラメーターを受け取り、その合計を返す別のメソッドを作成して、Calculator クラスの add メソッドをオーバーロードします。

エディターを読み込み中…
ヒントを表示

`public double add(double a, double b) { return a + b; と書きます。 }` 最初の add メソッドの直下にあります。

3 回の試行後に解決策が利用可能になります

運動#java.m2.l2.e3
試行回数: 0読み込み中…

2 つの数値の積を返す public int multiply(int a, int b) メソッドを Calculator クラスに追加します。 main メソッドで、calc オブジェクトに対してこのメ​​ソッドを呼び出し、結果を整数変数に割り当てます。

エディターを読み込み中…
ヒントを表示

メソッドを「public int multiply(int a, int b) { return a * b;」として宣言します。 }` を作成し、main メソッドで `int result = calc.multiply(5, 10);` として呼び出します。

3 回の試行後に解決策が利用可能になります