두 변수를 더하는 기능을 여러번 수행한다고 하면 어떻게 효율적으로 프로세스를 수행할 수 있을까? 이때는 메서드 기능을 사용하면 된다. 메서드는 수학에서 함수의 한 종류라고 생각하면 된다.
두 수를 더하는 메서드
와 세 수를 더하는 메서드
를 만든다고 해보자. 이때 기능이 동일하기 때문에 같은 이름의 메서드를 가지고 만들고 싶다면 어떻게 하면 될까? 이때 활용하는 것이 바로 메서드 오버로딩이다.
public class Overloading1 {
public static void main(String[] args) {
System.out.println(add(1, 2));
System.out.println(add(1, 2, 3));
}
public static int add(int a, int b) {
return a + b;
}
//메서드 오버 로딩
public static int add(int a, int b, int c) {
return a + b + c;
}
}
메서드 시그니처 = 메서드 이름 + 매개변수 타입(순서)
메서드 시그니처는 메서드를 구분할 수 있는 기준이다. 예시로 메서드 이름이 같아도 매개 변수의 타입, 혹은 순서가 다르면 자바는 이를 다른 메서드로 간주한다. 반환 타입은 시그니처에 포함되지 않으므로 메서드 오버로딩이 적용되지 않는다.