메소드 오버로딩(Method Overloading)

기록하는 용도·2022년 6월 9일
0

'메소드 오버로딩'은 클래스 내에 같은 이름의 메소드를 2개 이상 정의할 수 있게 해주는 기능이다.

같은 이름의 메소드가 2개 이상이어도 오류가 나지 않는 이유가 있다.
파라미터 구성이 다르면 알아서 구분할 수 있다.

쓰임

은행 계좌 예제
다른 통화로 입금을 하는 depositWithExchangeRate 메소드를 사용할 수 있다.

public boolean deposit(int amount) {
    if (amount < 0 || amount > owner.getCashAmount()) {
        System.out.println("입금 실패입니다. 잔고: " + balance + "원, 현금: " + owner.getCashAmount() + "원");
        return false;
    }

    balance += amount;
    owner.setCashAmount(owner.getCashAmount() - amount);

    System.out.println(amount + "원 입금하였습니다. 잔고: " + balance + "원, 현금: " + owner.getCashAmount() + "원");
    return true;
}

public boolean depositWithExchangeRate(double amount, double exchangeRate) {
    return deposit((int) (amount * exchangeRate));
}

여기서 depositWithExchangeRate을 위 동일한 이름을 가진 deposit으로 바꿔도 상관이 없다.
파라미터 구성이 달라 '메소드 오버로딩' 개념이 적용되기 때문이다.

public boolean deposit(double amount, double exchangeRate) {
    return deposit((int) (amount * exchangeRate));
}

0개의 댓글