はじめに
前回の記事では、Javaのコンストラクタについて紹介しました。
前回の記事
本記事では、Javaのオーバーロードについて紹介します。
オーバーロードとは
オーバーロードとは、同じクラス内に引数の数や型が異なる同じ名前のメソッドを2つ以上定義することです。
オーバーロードで同じ名前のメソッドにすることで、メソッドを使う人が "引数の型を意識せずに使える"というメリットがあります。
スポンサーリンク
例えば、同じような機能のメソッドで引数にint型とdouble型があるとします。オーバーロードを使わない場合は、それぞれ違うメソッド名で定義する必要があります。
そのため、メソッドを使う人は引数の型によって使うメソッドを選択します。
オーバーロードを使う場合、同じような機能で引数にint型とdouble型がある場合でもメソッド名は同じです。
そのため、メソッドを使う人は引数の型を気にする必要がありません。
このようにオーバーロードを使うことで、メソッドを使う人が "引数の型を意識せずに使える"というメリットがあります。
オーバーロードの使用例
それでは、オーバーロードの簡単なサンプルを紹介します。次の例では「add」というメソッド名でオーバーロードしています。
[オーバーロードの例]
public class Calculation {
public int add(int a, int b) {
return a + b;
}
public int add(int a) {
return a + 1;
}
public double add(double a, double b) {
return a + b;
}
}
次にオーバーロードしたメソッドを呼び出して実行するmainメソッドのサンプル例です。呼び出し側は引数の型を意識せず「add」メソッドを呼び出しています。
[mainメソッド]
public class MainSample {
public static void main(String[] args) {
Calculation cal = new Calculation();
System.out.println("引数2つ(int型)のメソッド:" + cal.add(2,2));
System.out.println("引数1つ(int型)のメソッド:" + cal.add(10));
System.out.println("引数2つ(double型)のメソッド:" + cal.add(2.5,1.1));
}
}
[実行結果]
引数2つ(int型)のメソッド:4
引数1つ(int型)のメソッド:11
引数2つ(double型)のメソッド:3.6
オーバーロードができない場合
オーバーロードするには決まりごとがあります。次のような場合はオーバーロードできません。
■引数の変数名だけが異なっている
public int add(int a) {
// 処理
}
public int add(int b) {
// 処理
}
■戻り値だけが異なっている
public int add(int a) {
// 処理
}
public double add(int a) {
// 処理
}
終わりに
本記事では、Javaのオーバーロードについて紹介しました。
次回の記事では、Javaのアクセス修飾子について紹介します。
次回の記事