ホームページ >Java >&#&チュートリアル >Java 関数のオーバーロード メカニズムにおけるさまざまなパラメーター タイプの処理は何ですか?

Java 関数のオーバーロード メカニズムにおけるさまざまなパラメーター タイプの処理は何ですか?

WBOY
WBOYオリジナル
2024-04-25 18:42:02880ブラウズ

Java 関数のオーバーロードでさまざまなパラメーターの型を処理するための規則: 完全一致: このメソッドは、パラメーター リストが実際のパラメーターの型と正確に一致するオーバーロードされたメソッドがある場合に使用されます。拡張変換: 完全に一致するものがない場合は、実際のパラメータの型をより広い型に変換しようとします。ボックス化/ボックス化解除: プリミティブ型とラップされたクラス間の自動ボックス化またはボックス化解除。変数パラメーター: 変数パラメーター (...) は、同じタイプの任意の数のパラメーターと一致できます。

Java 函数重载机制中不同参数类型的处理方法是什么?

Java 関数オーバーロードにおけるさまざまなパラメーター タイプの処理メカニズム

関数オーバーロードは、次のような関数を作成できる Java のメソッドです。同じ機能 名前は異なるがパラメータリストが異なる複数のメソッドを持つことができます。オーバーロードされたメソッドが呼び出されるとき、Java コンパイラは、呼び出しで指定された実際のパラメータの型に基づいて、呼び出す特定のメソッドを決定します。

Java での関数のオーバーロードのオーバーロード ルールは次のとおりです。

  • メソッド名は同じである必要があります。
  • メソッドパラメータリストは、数、タイプ、または順序のいずれかにおいて異なっていなければなりません。
  • 戻り値の型は同じでも異なっていても構いません。

#さまざまなパラメータ型の処理

さまざまなパラメータ型のオーバーロードされたメソッドを処理する場合、Java コンパイラは次のルールに従って照合します。

  • 完全一致: オーバーロードされたメソッドのパラメータ リストが、呼び出しで指定された実際のパラメータの型と正確に一致することが判明した場合、コンパイラはそのメソッドを選択します。
  • ワイド変換: 完全に一致するものが見つからない場合、コンパイラーは実際のパラメーターの型をより広い型に変換しようとします (int を # に変換するなど) ##長さ###)。 オートボックス化/ボックス化解除:
  • Java コンパイラは、プリミティブ型とそれに対応するラッパー クラスの間でボックス化とボックス化解除を自動的に実行します。
  • 可変パラメータ:
  • Java の可変パラメータ (
  • ...) は、同じ型の任意の数のパラメータと一致できます。
  • 実際的なケース

add

メソッドが複数回オーバーロードされる次のクラス例を考えてみましょう:

class Calculator {

    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }

    public long add(long a, long b) {
        return a + b;
    }

}
呼び出しの例:

Calculator calculator = new Calculator();

int result1 = calculator.add(10, 20); // 调用 int 参数的 add() 方法
double result2 = calculator.add(10.5, 15.3); // 调用 double 参数的 add() 方法
long result3 = calculator.add(1000L, 2000L); // 调用 long 参数的 add() 方法
これらの呼び出しでは、コンパイラは指定された引数の型に基づいて正しいオーバーロードされたメソッドを選択します:

result1
    実際のパラメータの型は
  • int であるため、int パラメータを指定して add メソッドを呼び出します。 result2
  • 実際のパラメータの型は
  • double であるため、double パラメータの add メソッドを呼び出します。 result3
  • 実際のパラメータの型は
  • long であるため、long パラメータの add メソッドを呼び出します。

以上がJava 関数のオーバーロード メカニズムにおけるさまざまなパラメーター タイプの処理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。