Method Overloading
Coddy Java 여정의 기초 섹션에 포함된 레슨 — 73개 중 54번째.
Java에서 method overloading은 같은 이름이지만 다른 매개변수를 가진 여러 메서드를 정의할 수 있게 해줍니다. 이는 비슷한 기능을 수행하지만 다른 데이터 타입이나 다른 수의 인수를 처리하는 여러 메서드를 가질 수 있다는 의미입니다.
핵심은 각 오버로드된 메서드가 고유한 메서드 시그니처를 가져야 한다는 것입니다. 메서드 시그니처는 메서드의 이름과 매개변수의 유형 및 순서에 의해 결정됩니다.
메서드 오버로딩의 주요 규칙은 다음과 같습니다:
- 동일한 이름: 모든 오버로드된 메서드는 동일한 이름을 가져야 합니다.
- 다른 매개변수: 메서드의 각 버전은 매개변수의 수가 다르거나, 매개변수의 타입이 다르거나, 둘 다 달라야 합니다.
- 반환 타입만으로는 부족하다: 오버로드된 메서드는 반환 타입만 다를 수 없습니다. 매개변수 목록이 달라야 합니다.
메서드 오버로딩을 설명하는 예제입니다:
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라는 이름의 세 가지 메서드가 있습니다. 첫 번째는 두 정수를 더하고, 두 번째는 두 double을 더하며, 세 번째는 세 정수를 더합니다.
Java는 메서드 호출 시 전달된 인수에 따라 호출할 메서드를 결정합니다.
메서드 오버로딩은 코드를 더 읽기 쉽고 재사용 가능하게 만듭니다. 비슷한 작업을 수행하는 메서드에 대해 서로 다른 이름을 만드는 대신 (예: addInts, addDoubles, addThreeInts), 단일 이름 add를 사용하고 컴파일러가 컨텍스트에 따라 적절한 메서드를 선택하도록 할 수 있습니다.
주의: 오버로딩은 매개변수 타입이나 개수가 다를 때만 가능하며, 단순히 매개변수 이름이나 반환 타입이 다르다고 해서 되는 것이 아닙니다.
치트 시트
메서드 오버로딩은 동일한 이름이지만 다른 매개변수를 가진 여러 메서드를 허용합니다:
메서드 오버로딩의 규칙:
- 동일한 메서드 이름
- 다른 매개변수(개수, 타입 또는 순서)
- 반환 타입만으로는 오버로딩에 충분하지 않습니다
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;
}
}Java는 메서드 호출 시 전달된 인수에 따라 호출할 메서드를 결정합니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison10Methods (Functions)
Declaring MethodsMethod ParametersReturn TypesMethod OverloadingRecap - Sigma FunctionRecap - Validation FunctionVoid Methods5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else