0Pricing
Java Academy · レッスン

戻り値とオーバーロード

return文と早期return、パラメータの数や型によるメソッドのオーバーロードを学びます。varargsとオーバーロード選択のデモも含みます。

「戻り値とオーバーロード」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。

概要

目標:return 文とメソッドのオーバーロードを身につけます。早期 return(ガード節)、個数と型によるオーバーロード、短い可変長引数のデモを確認します。

return とガード節

Return は呼び出し元に値を返し、メソッドを終了します。ガード節(早期 return)を使うと、最初に特殊なケースを処理できるため、コードをシンプルに保てます。

public class Main {
  // Double an integer and return the result
  static int doubleIt(int x) {
    return x * 2;
  }

  // Return a label using a simple early-return pattern (guard clause)
  static String parity(int n) {
    if (n % 2 == 0) {
      return "even";   // early return ends the method here
    }
    return "odd";       // otherwise this path executes
  }

  public static void main(String[] args) {
    System.out.println("doubleIt(7) = " + doubleIt(7));
    System.out.println("parity(10) = " + parity(10));
    System.out.println("parity(11) = " + parity(11));
  }
}

複数の return

入力が無効な場合に早く return すると、深いネストを避けられます。ここでは、単純な方針としてゼロ除算の結果を 0 とします(後で例外について学びます)。

public class Main {
  // Safe integer division with simple validation
  static int safeDiv(int num, int den) {
    if (den == 0) {
      return 0; // simple policy: return 0 if denominator is zero
    }
    return num / den; // normal path
  }

  public static void main(String[] args) {
    System.out.println("safeDiv(8, 2) = " + safeDiv(8, 2));
    System.out.println("safeDiv(5, 0) = " + safeDiv(5, 0));
  }
}

オーバーロード:個数

オーバーロードとは、メソッド名は同じで、パラメーターリストが異なることです。パラメーターの数を変えると、有効なオーバーロードになります。

public class Main {
  // Overload 1: max of two numbers
  static int max(int a, int b) {
    return (a > b) ? a : b;
  }
  // Overload 2: max of three numbers (different parameter COUNT)
  static int max(int a, int b, int c) {
    int m = (a > b) ? a : b;
    return (m > c) ? m : c;
  }
  public static void main(String[] args) {
    System.out.println("max(3, 9) = " + max(3, 9));
    System.out.println("max(3, 9, 5) = " + max(3, 9, 5));
  }
}

オーバーロード:型

型によるオーバーロードを使うと、関連する操作で同じ名前を再利用できます。異なる数値型の引数が混在する場合は、最も適切に一致するシグネチャへ昇格されます。

public class Main {
  // Overload for integers
  static int add(int a, int b) {
    return a + b;
  }
  // Overload for doubles (different parameter TYPES)
  static double add(double a, double b) {
    return a + b;
  }
  public static void main(String[] args) {
    System.out.println("add(2, 3) = " + add(2, 3));           // calls int version
    System.out.println("add(2.5, 3.5) = " + add(2.5, 3.5));   // calls double version
    System.out.println("add(2, 3.5) = " + add(2, 3.5));       // numeric promotion chooses double version
  }
}

オーバーロード:可変長引数

可変長引数(int...)は、0個以上の引数をまとめて受け取ります。利用可能な場合、オーバーロード解決では可変長引数でない完全一致が優先されます。

public class Main {
  // Specific overload for two ints
  static int sum(int a, int b) {
    return a + b;
  }
  // Varargs overload for many ints
  static int sum(int... nums) {
    int s = 0;
    for (int i = 0; i < nums.length; i = i + 1) s = s + nums[i];
    return s;
  }
  public static void main(String[] args) {
    // Exact match beats varargs
    System.out.println("sum(4, 5) = " + sum(4, 5));           // picks (int,int)
    System.out.println("sum(1,2,3,4) = " + sum(1, 2, 3, 4));  // uses varargs
  }
}

オーバーロードの確認

クイックチェック:1つのクラスで有効なオーバーロードにできる組み合わせはどれですか。

復習と次のステップ

復習:return と早期 return を使い、個数と型による有効なオーバーロードを作成し、可変長引数を練習しました。次は、変数とメソッドのスコープとライフタイムです。

よくある質問

「戻り値とオーバーロード」レッスンは無料ですか?

はい。「戻り値とオーバーロード」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。

「戻り値とオーバーロード」で何を学びますか?

return文と早期return、パラメータの数や型によるメソッドのオーバーロードを学びます。varargsとオーバーロード選択のデモも含みます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「戻り値とオーバーロード」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. メソッドとパラメータの定義
  2. 戻り値とオーバーロード
  3. スコープとライフタイム
← Java Academyに戻る