public class Calculator {
// 整数の加算
public int add(int a, int b) {
return a + b;
}
// 浮動小数点数の加算
public double add(double a, double b) {
return a + b;
}
// 文字列の結合
public String add(String a, String b) {
return a + b;
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
// 整数の加算を実行
int result1 = calculator.add(5, 10);
System.out.println("整数の加算結果: " + result1);
// 浮動小数点数の加算を実行
double result2 = calculator.add(3.5, 2.7);
System.out.println("浮動小数点数の加算結果: " + result2);
// 文字列の結合を実行
String result3 = calculator.add("Hello, ", "world!");
System.out.println("文字列の結合結果: " + result3);
}
}
このコードでは、Calculator
クラス内に整数の加算、浮動小数点数の加算、文字列の結合といった異なる型に対応した add
メソッドをオーバーロードしています。main
メソッドでは、それぞれのメソッドを呼び出して結果を表示しています。
ポイント:
- 各メソッドは同じ名前 (
add
) を持ち、引数の型や数が異なります。 - 整数の加算、浮動小数点数の加算、文字列の結合といった異なる型の操作に対応しています。
- メソッド内で具体的な処理を行い、結果を返すことがオーバーロードの目的です。
メソッドのオーバーロード
「メソッドのオーバーロード」は、同じメソッド名を持つが、引数の型や個数が異なるメソッドをクラス内に複数定義することを指します。これにより、同じ機能を持つメソッドを異なる型に対して使い分けることができます。以下に、メソッドのオーバーロードについての解説を示します。
メソッドのオーバーロードの条件
- メソッド名が同じであること: 同じクラス内で異なるメソッドには、同じ名前が必要です。
- 引数の型や個数が異なること: オーバーロードされるメソッドは、引数の型や個数が異なる必要があります。型や個数が同じ場合、コンパイラがオーバーロードされたメソッドと認識しません。
メリット
- 柔軟性の向上: 同じ名前のメソッドを異なる型に対して使用できるため、より柔軟で使いやすいコードが作成できます。
- 可読性の向上: 開発者は同じ目的を持つメソッドが同じ名前であることを理解しやすくなります。これにより、コードが簡潔で理解しやすくなります。
サンプルコード
以下は、Javaでのメソッドのオーバーロードのサンプルコードです。
public class Calculator {
// 整数の加算
public int add(int a, int b) {
return a + b;
}
// 浮動小数点数の加算
public double add(double a, double b) {
return a + b;
}
// 文字列の結合
public String add(String a, String b) {
return a + b;
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
// 各メソッドを使用
int result1 = calculator.add(5, 10);
double result2 = calculator.add(3.5, 2.7);
String result3 = calculator.add("Hello, ", "world!");
// 結果の表示
System.out.println("整数の加算結果: " + result1);
System.out.println("浮動小数点数の加算結果: " + result2);
System.out.println("文字列の結合結果: " + result3);
}
}
この例では、Calculator
クラス内に add
メソッドをオーバーロードしています。それぞれのメソッドは異なる型の引数に対応しており、main
メソッドでそれらを呼び出しています。