1. カメラ
  2. カーオーディオ&エレクトロニクス
  3. ホームオーディオ
  4. パーソナルオーディオ
  5. テレビ
  6. スマートホーム
  >> 電子技術オンライン >  >> スマートホーム >> スマートライフ

Java におけるオーバーロード方式の長所と短所

オーバーロードされたメソッドは、同じ名前を共有するが引数として異なる変数型を受け入れる同じクラスのメソッドです。たとえば、1 つのクラスに 2 つの異なる「add」メソッドを含めることができます。1 つは 2 つの double 値を受け入れる「add(double a, double b)」で、もう 1 つは 2 つの整数値を受け入れる「add(int a, int b)」です。 "コンピューターは、メソッドに渡される変数の型に基づいて、実行時に呼び出すメソッドを自動的に決定します。

柔軟性

オーバーロードされたメソッドにより、プログラマはさまざまなタイプのデータに対して同様のメソッドを柔軟に呼び出すことができます。たとえば、数学プログラムで作業している場合、オーバーロードを使用していくつかの「乗算」クラスを作成し、それぞれが異なる数の型の引数を乗算することができます。最も単純な「multiply(int a, int b)」は 2 を乗算します。整数;より複雑なメソッド "multiply(double a, int b, int c)" は、1 つの double と 2 つの整数を乗算します。その後、オーバーロードされたメソッドを作成した変数の任意の組み合わせに対して "multiply" を呼び出し、適切な結果を受け取ることができます。

コンストラクター

オーバーロードはコンストラクターでも使用され、さまざまな量のデータを指定して新しいオブジェクトを作成します。たとえば、オーバーロードを使用して、番地、通りの名前、および色の変数を持つ「House」オブジェクトの 3 つの異なるコンストラクターを作成できます。最も単純なコンストラクター「House()」は引数をとらず、デフォルトまたは空の変数で家を作成します。より複雑なコンストラクター "House(int houseNumber, String streetName)" は、指定された番地と通りの名前を持つ家を作成しますが、色はデフォルトまたは空の色です。最も複雑なコンストラクター "House(int houseNumber, String streetName, String color)" は、指定されたすべての情報を使用して家を作成し、デフォルトは何も残しません。次に、現在利用可能な情報に基づいて家のオブジェクトを作成し、利用できない情報を空白のままにするか、デフォルトのままにすることができます。

あいまいな参照

オーバーロードされたメソッドは、あいまいさを避けるために、異なる数または型の引数を使用する必要があります。同じ名前を持ち、引数として 2 つの整数を受け入れる同じクラスに 2 つのメソッドを作成すると、入力変数の名前が異なっていても、Java コンパイラは 2 つを区別できません。たとえば、メソッド「add(int a, int b)」は、メソッド「add(int c, int d)」と同じクラスに存在できません。

戻り値の型

オーバーロードされたメソッドごとに戻り値の型を定義する必要があります。メソッドにはさまざまな戻り値の型があります。たとえば、"add(int a, int b)" は整数を返し、"add(double a, double b)" は double を返します。ただし、Java は戻り値の型に基づいて 2 つの異なるメソッドを区別できません。したがって、「int 乗算 (double a、ダブル b)」は、「double 乗算 (double a、double b)」と同じクラスには存在できません。