본문 바로가기
Chapter01/Java

[ Java ] Overloading 개념 + 예시코드

by EmmaDev_v 2023. 11. 7.

 

: 메소드 이름을 같게하고, 파라미터(타입, 순서, 개수)를 달리해 여러 메소드를 정의하는 방법

 

 

제가 예시 코드를 만들어보았어요

 

car라는 이름의 메소드는 파라미터를 색상만 갖는 경우, 색상과 유형을 갖는 두 가지 경우가 있습니다. 

파라미터에 따라서 자동차의 가격을 반환하는데!

 

car(String color, String type) 메서드는 주어진 색상과 유형에 따라 자동차의 가격을 반환합니다.

car(String color) 메서드는 색상만 주어질 경우 기본 유형인 "sedan"의 가격을 반환합니다.

 

public class Car {

    private Integer car(String color, String type) {
        int price;
        
        switch (type.toLowerCase()) {
            case "suv":
                price = 30000;
                break;
            case "sedan":
                price = 20000;
                break;
            case "coupe":
                price = 25000;
                break;
            default:
                price = 15000;
                break;
        }

        // 색상에 따라 추가 비용 발생
        switch (color.toLowerCase()) {
            case "red":
                price += 1000;
                break;
            case "black":
                price += 500;
                break;
        }

        return price;
    }

    //색상만 주어질 경우 기본 유형인 "sedan"의 가격을 반환
    private Integer car(String color) {
        return car(color, "sedan");
    }

    public static void main(String[] args) {
        Car myCar = new Car();
        
        // SUV 타입의 빨간색 자동차 가격
        Integer suvPrice = myCar.car("red", "suv");
        System.out.println("SUV의 빨간색 자동차 가격: " + suvPrice);
        
        // 기본 유형인 sedan의 검은색 자동차 가격
        Integer sedanPrice = myCar.car("black");
        System.out.println("Sedan의 검은색 자동차 가격: " + sedanPrice);
    }
}

 

이러한 방식으로 오버로딩된 메서드는 매개변수에 따라 서로 다른 동작을 수행할 수 있습니다.

 

 

반응형