Menu
Coddy logo textTech

Method Overloading

Coddy Java 여정의 기초 섹션에 포함된 레슨 — 73개 중 54번째.

Java에서 method overloading은 같은 이름이지만 다른 매개변수를 가진 여러 메서드를 정의할 수 있게 해줍니다. 이는 비슷한 기능을 수행하지만 다른 데이터 타입이나 다른 수의 인수를 처리하는 여러 메서드를 가질 수 있다는 의미입니다.

핵심은 각 오버로드된 메서드가 고유한 메서드 시그니처를 가져야 한다는 것입니다. 메서드 시그니처는 메서드의 이름과 매개변수의 유형 및 순서에 의해 결정됩니다.

메서드 오버로딩의 주요 규칙은 다음과 같습니다:

  1. 동일한 이름: 모든 오버로드된 메서드는 동일한 이름을 가져야 합니다.
  2. 다른 매개변수: 메서드의 각 버전은 매개변수의 수가 다르거나, 매개변수의 타입이 다르거나, 둘 다 달라야 합니다.
  1. 반환 타입만으로는 부족하다: 오버로드된 메서드는 반환 타입만 다를 수 없습니다. 매개변수 목록이 달라야 합니다.

메서드 오버로딩을 설명하는 예제입니다:

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는 메서드 호출 시 전달된 인수에 따라 호출할 메서드를 결정합니다.

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨