'
본문 바로가기
study/Programming

[JAVA 기초] 메소드 오버로딩

by meowdule 2025. 4. 19.

 

1. 오버로딩이란?


📌 메소드 오버로딩(Method Overloading)

프로그래밍을 하다 보면, 동일한 동작을 수행하지만 입력값(매개변수)이 다른 메소드를 만들고 싶은 경우가 있습니다. 이럴 때 사용하는 것이 메소드 오버로딩(Method Overloading)입니다.

 

💡 오버로딩(Overloading)이란, 같은 이름의 메소드를 여러 개 정의하되,
매개변수의 개수나 타입이 다르게 선언하는 것을 말합니다.

 

자바에서는 메소드 이름이 같아도 아래 조건 중 하나가 다르면 서로 다른 메소드로 인식합니다.

  • 매개변수 개수
  • 매개변수 자료형
  • 매개변수의 순서

⚠️ 주의: 반환 타입(return type)은 오버로딩을 구분하는 기준이 되지 않습니다.

 


📌 오버로딩 예시

public class OverloadExample {

    // 1. 매개변수가 없는 경우
    public void print() {
        System.out.println("이름이 없습니다.");
    }

    // 2. 매개변수가 하나인 경우
    public void print(String name) {
        System.out.println("이름은 " + name + "입니다.");
    }

    // 3. 매개변수가 두 개인 경우
    public void print(String name, int age) {
        System.out.println(name + "님의 나이는 " + age + "세입니다.");
    }

    public static void main(String[] args) {
        OverloadExample oe = new OverloadExample();

        oe.print();                          // → 이름이 없습니다.
        oe.print("홍길동");                  // → 이름은 홍길동입니다.
        oe.print("유관순", 18);              // → 유관순님의 나이는 18세입니다.
    }
}

 

 

 

 

 

 

 

 

 

2. 오버로딩의 장점

 

 

  • 코드의 가독성이 좋아집니다.
  • 같은 기능을 수행하는 메소드를 하나의 이름으로 관리할 수 있어 유지보수가 쉬워집니다.
  • 매개변수만 다르면 자동으로 적절한 메소드가 호출되므로, 호출부가 간결해집니다.

 

 

 

 

 

 

 

3. 오버로딩과 혼동 주의

 

항목 설명
✅ 이름 동일 반드시 메소드 이름은 같아야 함
✅ 매개변수 다름 개수, 타입, 순서 중 하나 이상 달라야 함
❌ 반환형만 다름 반환형만 다르면 오버로딩으로 인식되지 않음

 

public int test(int a) { return a; }
// public String test(int a) { return String.valueOf(a); }  // ⚠️ 컴파일 에러 발생

 

 

 

 

 

 

 

 

4. 정리

 

  • 메소드 오버로딩은 하나의 이름으로 다양한 매개변수 상황을 처리할 수 있게 해 줍니다.
  • 매개변수의 개수, 타입, 순서가 다르면 같은 이름의 메소드를 여러 번 정의할 수 있습니다.
  • 오버로딩은 선택적 개념이지만 실무에서 자주 사용되며,
    객체지향 프로그래밍의 다형성(polymorphism) 개념과도 연결됩니다.

🔜 오버로딩과는 별개로, 오버라이딩(Overriding)이라는 개념은 상속에서 다루게 됩니다.
이 둘은 이름이 비슷하지만 전혀 다른 개념이니 차차 구분할 수 있도록 합시다.

 

 

 

 

 

 

마무리
다음 게시글에서는 메소드의 반환값 에 대해 학습하겠습니다.