Javaでのメソッドのオーバーロード[例を使用]
公開: 2020-11-12Javaは、オブジェクト指向プログラミングの概念に従った用途の広い言語です。 オブジェクト指向プログラミングの多くの機能により、コードはモジュール式で、再利用可能で、柔軟性があり、デバッグが容易です。 オブジェクト指向プログラミングには、継承、ポリモーフィズム、カプセル化、抽象化など、多くの機能があります。
この記事では、ポリモーフィズムの一種であるJavaでのメソッドのオーバーロードについて説明します。
目次
ポリモーフィズム
ポリモーフィズムとは、さまざまな形で現れる能力を意味します。 これにより、同じメソッドが異なるメソッドを使用して異なる動作を示すことができます。 ポリモーフィズムには、メソッドのオーバーロードとメソッドのオーバーライドの2つのタイプがあります。 メソッドのオーバーロードとは、複数のメソッドが同じ名前で引数が異なることを意味します。
Swiggy、Quora、IMDBなどのアプリケーションの構築方法を学ぶメソッドのオーバーライドとは、子クラスが親クラスと同じ名前で実装が異なるメソッドを持つことができることを意味します。 この記事では、メソッドのオーバーロードについて詳しく説明します。 メソッドのオーバーライドについては、upGradにアクセスして洞察を得ることができます。
Javaでのメソッドのオーバーロード
Javaでのメソッドのオーバーロードは、オブジェクト指向言語の最も便利な機能の1つです。 これにより、クラスは同じ名前の複数のメソッドを持つことができます。 これらのメソッドの唯一の違いは、これらのメソッドを介して渡されるパラメーターのリストが異なることです。
簡単な例で簡単に理解できます。 クラスの追加には、add()という名前の2つのメソッドがあり、1つのメソッドにはパラメーターintaとintbがあり、もう1つのメソッドには3つの整数パラメーター(int a、int b、int c)があります。 したがって、add()メソッドはオーバーロードされていると言われます。

実行されるメソッドは、メソッド呼び出しステートメントで渡されるパラメーターの数によって異なります。 説明のために、add(20,30)は2つのパラメーターを持つadd()メソッドを呼び出し、add(10,20,30)は3つのパラメーターを持つaddメソッドを呼び出します。
メソッドをオーバーロードするさまざまな方法
Javaでのメソッドのオーバーロードは、さまざまな方法で実現できます。 これは、Javaで同じ名前の2つのメソッドを区別するパラメーターのリストであることを理解しています。 Javaでのメソッドのオーバーロードのさまざまな方法は、以下のいずれかの方法でパラメーターリストを変更することで実現できます。
- パラメータの数
- パラメータのデータ型
- パラメータのデータ型のシーケンス
パラメータの数
名前から明らかなように、オーバーロードされたメソッドには、メソッド呼び出しステートメントを参照して実行するメソッドを決定するパラメーターの数が異なります。 以下は、パラメータの数が変化するJavaでのメソッドのオーバーロードです。
方法1:add(int、int)
方法2:add(int、int、int)
メソッド呼び出しステートメントadd(20,30)はmethod1を実行し、メソッド呼び出しステートメントadd(10,20,30)はmethod2を実行します。
パラメータのデータ型
Javaでのこのタイプのメソッドのオーバーロードでは、クラスの2つのJavaメソッドは同じ名前であり、パラメーターの数は同じでも異なっていてもかまいませんが、パラメーターのデータ型は異なります。
方法1:add(int、int)
方法2:add(int、float)
方法3:add(float、float)
上記のメソッドでは、メソッド名は同じですが、パラメーターのデータ型が異なります。 したがって、メソッド呼び出しステートメントadd(2、5.5)はmethod2を実行します。 同様に、add(7.5、10.25)はmethod3を実行します。
パラメータのデータ型のシーケンス
Javaでのこのタイプのメソッドのオーバーロードでは、メソッド名とパラメーターの数の両方が同じですが、違いはこれらのパラメーターのデータ型の順序にあります。 以下は、オーバーロードされたメソッドの例です。
方法1:add(int、float)
方法2:add(float、int)
ここで、ステートメントをadd(100、75.5)に呼び出すと、method1が呼び出されて実行され、add(55.25、150)がmethod2が実行されます。

したがって、どのオーバーロードされたメソッドが実行されるかを決定するのは、呼び出し元のステートメントのパラメーターです。
読む: Javaでのメソッドのオーバーロード
Javaでメソッドのオーバーロードが必要なのはなぜですか?
プログラマーが何らかのアクションを実行するためにJavaでメソッドを作成したが、後で要件の一部としてプログラマーが同じメソッドを異なるパラメーターに作用させたい場合、コーダーはJavaでのメソッドオーバーロードの機能を使用できます。 これにより、プログラマーは同じ名前で同様の機能を実行するメソッドを作成できるため、後で名前を覚える必要がなくなります。
Javaでメソッドのオーバーロードを実行する利点について教えてください。
Javaでメソッドのオーバーロードを実行する利点
以下は、Javaでのメソッドのオーバーロードの利点の一部です。
- 書かれたコードの可読性が向上します。
- 書かれたコードに清潔さを加えます。
- コンストラクターでも使用できるため、さまざまなデータを渡すことでさまざまなオブジェクトを作成できます。
- これにより、プログラマーは同じような名前のさまざまなメソッドを柔軟に呼び出すことができます。
- オーバーロードされたメソッドは、さまざまな戻り値を持つ可能性があります。
必読: Javaでのキャリア
Javaでのメソッドのオーバーロードのルール
- 最初のルールは、メソッドのシグネチャを変更することです。 メソッドシグネチャとは、引数の数、パラメータのシーケンス、およびパラメータのデータ型を指します。
- メソッド名と引数を同じに保ちながらメソッドの戻り型のみを変更した場合、これはメソッドのオーバーロードではありませんが、コンパイルエラーが発生します。
Javaでのメソッドのオーバーロードに関する重要なポイント
- Javaで記述されたコードは、同じ名前のメソッドを持つことはできません。 Javaで同じ名前の2つのメソッドを作成すると、コンパイルエラーがスローされます。
- これは、メソッドのオーバーロードによって実現できます。 メソッドのオーバーロードにより、プログラマーは同じ名前でパラメーターリストが異なる2つまたは3つ以上のメソッドを作成できます。
- Javaでのメソッドのオーバーロードは、コンストラクターのオーバーロードに似ています。 唯一の違いは、クラスで定義されたメソッドに対してメソッドのオーバーロードが発生するのに対し、コンストラクターのオーバーロードはクラスのコンストラクターメソッドに対して発生することです。
- Javaでのメソッドのオーバーロードでは、オーバーロードされたメソッドには異なるパラメーターのリストがあります。 メソッドの戻り型とは何の関係もありません。 例として; 2つのメソッドが同じ名前と同じパラメーターのリストを持っているが、戻り値のタイプが異なる場合、これはJavaでのメソッドのオーバーロードではありませんが、無効なケースです。
方法1 :int Add(float、float)
方法2 :float Add(float、float)
両方のAdd()メソッドが同じ名前と同じパラメーターのリストを持っているため、これはメソッドのオーバーロードの無効なケースです。
以下は、Javaでのメソッドのオーバーロードを説明するコードです。
クラス合計{
private int a;
private int b;
private int c;
private int d;
int public add(int a、int b){
int c;
c = a + b;
cを返す;
}
int public add(int a、float b){
int c;
c = a + b;
cを返す;
}
int public add(float a、float b){
int c;
c = a + b;
cを返す;
}
int public add(float a、int b、int c){
int d;
d = a + b + c;
dを返す;
}
}
Public static void main(String [] args)
{{
//mainメソッドでクラスのオブジェクトを作成します
sum obj1 = new sum();
sum1 = obj1.add(10,20);
sum2 = obj1.add(10,55.5);
sum3 = obj1.add(110.5,25.5);

sum4 = obj1.add(10,20,30);
}
また読む: Javaのパターンプログラム
結論
この記事では、Javaでのメソッドのオーバーロードについて詳しく説明し、そのタイプ、ルール、および利点について説明しました。 このトピックは、例を使用して詳細に説明されました。 Javaでのオーバーロードについて疑問がある場合は、コメントでお知らせください。
Java、フルスタックソフトウェア開発について詳しく知りたい場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のPGディプロマをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクトを提供します。 、および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、およびトップ企業との雇用支援。