Javaでのオーバーロードメソッドの長所と短所

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

柔軟性

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

今日のビデオ

コンストラクター

オーバーロードは、さまざまな量のデータを指定して新しいオブジェクトを作成するためにコンストラクターでも使用されます。 たとえば、オーバーロードを使用して、家番号、通りの名前、色の変数を持つ「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、intd)」と同じクラスに存在することはできません。

返品タイプ

オーバーロードされたメソッドごとにリターンタイプを定義する必要があります。 メソッドはさまざまな戻りタイプを持つことができます。たとえば、「add(int a、int b)」は整数を返し、「add(double a、doubleb)」はdoubleを返します。 ただし、Javaは、戻りタイプに基づいて2つの異なるメソッドを区別できません。 したがって、「int multiply(double a、double b)」は、「double multiply(double a、doubleb)」と同じクラスに存在することはできません。