同じ名前のメソッドをいくつも作る、メソッドのオーバーロードについて説明します。
Javaでは通常、同じクラス内に、同じ名前のメソッドを複数作ることはできません。しかし例外があり、引数が異なる場合は作れます。こういった手法で、同じ名前のメソッドを複数作ることを、メソッドの「オーバーロード」と呼びます。
public class MyClass {
public static int myMethod() {
return 0;
}
public static int myMethod(int i) {
return 1;
}
public static int myMethod(int i, int j) {
return 2;
}
public static int myMethod(String s) {
return 3;
}
}
オーバーロードは、似たような処理を行いたいが、引数が何種類かのパターンに分かれるような時に使います。
例えば、引数に数値を取りたい場合、int、doubleなど、引数がそれぞれの型のメソッドを用意しておきます。そうすれば、使う側は数値変数の種類を気にせず、そのメソッドを利用できます。
public class MyClass {
public static int plusOne(int i) {
return i + 1;
}
public static double plusOne(double f) {
return f + 1.0;
}
}
int res1 = MyClass.plusOne(1); double res2 = MyClass.plusOne(1.0);
また、引数の数を変えて、同じ名前のメソッドを作る時にも使います。
public class MyClass {
public static void print(String s) {
System.out.println(s);
}
public static void print(String s1, String s2) {
System.out.println(s1 + s2);
}
}
MyClass.print("明日は");
MyClass.print("明日は", "晴れです");