메서드 오버로딩
Coddy Java 여정의 기초 섹션에 포함된 레슨. 73개 중 54번째.
Java에서 메서드 오버로딩을 사용하면 이름은 같지만 매개변수가 다른 여러 메서드를 정의할 수 있습니다. 즉, 비슷한 기능을 수행하지만 서로 다른 데이터 형식이나 서로 다른 개수의 인수에 대해 작동하는 여러 메서드를 가질 수 있습니다.
핵심은 오버로드된 각 메서드가 고유한 메서드 시그니처를 가져야 한다는 것입니다. 메서드 시그니처는 메서드의 이름과 매개변수의 타입 및 순서에 따라 결정됩니다.
메서드 오버로딩의 주요 규칙은 다음과 같습니다:
- 동일한 이름: 오버로드된 모든 메서드는 동일한 이름을 가져야 합니다.
- 서로 다른 매개변수: 메서드의 각 버전은 매개변수의 개수, 매개변수의 유형 또는 둘 다가 서로 달라야 합니다.
- 반환 형식만으로는 충분하지 않음: 오버로드된 메서드는 반환 형식만 다를 수 없습니다. 서로 다른 매개변수 목록을 가져야 합니다.
메서드 오버로딩을 설명하기 위한 예시는 다음과 같습니다:
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static int add(int a, int b, int c) {
return a + b + c;
}
}이 예제에는 add라는 이름의 메서드가 세 개 있습니다. 첫 번째 메서드는 두 개의 int를 더하고, 두 번째 메서드는 두 개의 double을 더하며, 세 번째 메서드는 세 개의 int를 더합니다.
Java는 메서드 호출 중에 전달된 인수를 기반으로 호출할 메서드를 결정합니다.
메서드 오버로딩을 사용하면 코드를 더 읽기 쉽고 재사용 가능하게 만들 수 있습니다. 비슷한 작업을 수행하는 메서드에 서로 다른 이름(예: addInts, addDoubles, addThreeInts)을 만드는 대신, 하나의 이름인 add를 사용하고 컴파일러가 컨텍스트에 따라 적절한 메서드를 선택하도록 할 수 있습니다.
기억하세요: 오버로딩을 하려면 단순히 매개변수 이름이나 반환 유형이 다른 것이 아니라, 매개변수의 유형이나 개수가 달라야 합니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 Java 컴파일러