[Java] 메소드 오버로딩

전우석·2024년 3월 20일

Java

목록 보기
16/24

메소드 오버로딩

Java에서 같은 이름의 메소드를 여러 개 정의하되, 매개변수의 유형이나 개수를 다르게 하여 서로 다른 작업을 수행하도록 하는 기법

  • 메소드 오버로딩은 매개변수의 타입, 개수, 순서가 다를 경우 같은 이름의 메소드를 여러 번 정의할 수 있게 해준다.
  • 이를 통해 객체 지향 프로그래밍에서 다형성을 구현할 수 있도록 한다.

메소드 오버로딩 규칙

  • 메소드 이름: 오버로딩된 모든 메소드는 같은 이름을 가져야 한다.
  • 매개변수 목록: 매개변수의 타입, 순서, 개수 중 하나 이상이 달라야 한다.
  • 반환 타입과 접근 제한자는 오버로딩을 결정하는 데 영향을 주지 않는다.
    • 오버로딩은 메소드의 시그니처(이름과 매개변수)에 의해 결정되며, 반환 타입이나 접근 제한자는 오버로딩을 구분하는 데 사용되지 않는다.

메소드 오버로딩 장점

  • 코드의 가독성과 재사용성 향상: 같은 이름의 메소드에 다양한 매개변수를 전달하여 다른 작업을 수행할 수 있기 때문에, 코드의 가독성과 재사용성이 향상된다.
  • 사용자 편의성 제공: 사용자는 다양한 매개변수를 가진 동일한 기능의 메소드를 선택하여 사용할 수 있어, 프로그래밍의 유연성이 증가한다.

메소드 오버로딩 예제

class Calculator {
    // 메소드 오버로딩 예제: add 메소드
    // 정수 덧셈
    public int add(int a, int b) {
        return a + b;
    }

    // 세 개의 정수 덧셈
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // 실수 덧셈
    public double add(double a, double b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        Calculator calc = new Calculator();
        System.out.println(calc.add(1, 2));  // 정수 덧셈
        System.out.println(calc.add(1, 2, 3));  // 세 개의 정수 덧셈
        System.out.println(calc.add(1.0, 2.0));  // 실수 덧셈
    }
}
  • 이 예제에서, Calculator 클래스는 add 메소드를 오버로딩하여 정수 덧셈, 세 개의 정수 덧셈, 실수 덧셈 등 다양한 형태의 덧셈을 지원하도록 하였다.
  • 메소드 오버로딩을 통해 하나의 메소드 이름으로 여러 기능을 구현할 수 있어, 코드의 간결성과 유연성이 향상될 수 있다.

0개의 댓글