본문 바로가기
Back-End/JAVA

[JAVA]오버로딩

by codeZeroMan 2022. 5. 4.

자바에서는 클래스내에 같은 이름의 메소드라도 매개변수의 타입, 순서, 개수가 다른 형태의 메소드를 허용한다. 이를 오버로딩이라고 한다.

위에 처럼 설명한다면 이해하기는 어려울 것이다.

우리는 차를 가지고 주유소에 방문하여 주유한다고 가정하자. 

주유소는 주유를 해주면서 돈을 받아야한다. 이때 우리가 현금결재를 CashRefuel, 신용카드를 CreditRefuel이라 할수 있다.

class Car{
    private int energy;
    private void cashRefuel(int cash){
        //금액에 따른 주유량을 구하는 로직이 들어갈수 있다.
        energy++;
    }
    private void creditRefuel(int cash){
        //금액에 따른 주유량을 구하는 로직이 들어갈수 있다.
        energy++;
    }
}

이렇게 메소드명을 다르게 해서 구분해도 좋지만 우린 행위에 대한 초점을 맞추고 싶다면 아래와 같이 하는게 좋을 것이다.

public class Car {
    private int energy;

    private void refuel(Cash cash){
        energy++ ;
    }
    private void refuel(Credit credit){
        energy++;
    }
}

 

 

자바에서 메소드를 구분하는 기준은 메소드 명과 매계변수 차이를 기준한다.

'Back-End > JAVA' 카테고리의 다른 글

[JAVA]Generic 명명 관례  (0) 2024.05.23
[EffectiveJava]생성자 대신 정적 팩터리 메서드를 고민하라.  (0) 2022.05.04
[JAVA]데이터 타입  (0) 2022.04.25
[JAVA] NaN, Infinity  (0) 2022.04.25
[JAVA]오버플로우  (0) 2022.04.25