본문 바로가기
Backend/Java

Java 기초 문법 : 오버로딩에 대해서

by 코딩쥐 2024. 5. 26.

오버로딩은 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것을 의미한다. 오버로딩을 통해 메서드들이 하나의 이름으로 정의되어 가독성을 향상할 수 있고, 유지보수에 용이하다. 

 

오버로딩의 조건

  • 메서드의 이름이 같아야 한다.
  • 매개변수의 개수 또는 타입이 달라야 한다. 
  • 반환 타입은 영향이 없다. 반환 타입만으로는 오버로딩이 성립되지 않는다.

 

아래의 예제의 경우 method1 이라는 이름의 메서드를 오버로딩 한 것으로, method1을 불러 올 때의 매개변수의 갯수에 따라서 시행되는 메서드가 다른 것을 볼 수 있다. 

package com.example1;

public class Example2 {
    public void method1(String s1){
        System.out.println("입력 값 (매개변수 1개) : " + s1);
    }

    // 메서드 오버로딩 1
    public void method1(String s1, String s2){
        System.out.println("입력 값 (매개변수 2개) : " + s1 + " : " + s2);
    }

    //메서드 오버로딩 2
    public void method1(String ...str){
        for(String s : str){
            System.out.println("입력 값 (매개변수 3개) : " + s);
        }
    }

    public static void main(String[] args) {
        Example2 example = new Example2();
        example.method1("매개변수1");
        example.method1("매개변수1", "매개변수2");
        example.method1("매개변수1", "매개변수2", "매개변수3");
    }

}