• 이름을 가질 수 있다. (동일한 시그니처의 생성자를 두개 가질 수 없다.)
    • 생성자의 시그니처가 중복되는 경우에 정적 팩터리 메서드를 고려하면 좋다
package org.example;

public class Order {
    private boolean prime;
    private boolean urgent;
    private Product product;

    public static Order primeOrder(Product product){
        Order order = new Order();
        order.prime = true;
        order.product = product;
        return order;
    }

    public static Order urgentOrder(Product product){
        Order order = new Order();
        order.urgent = true;
        order.product = product;
        return order;
    }


}

용어 정리

시그니처 : 메서드의 이름, 순서, 파라미터를 묶어 이르는 말. 위 같은 경우에는 컴파일 오류가 발생하지만, 재미있게도 둘 중 하나의 생성자의 파라미터 순서만 바뀌어도 컴파일 오류가 발생하지 않는다.

  • 메서드명, 순서, 타입이 동일 할 때

  • 메서드명, 타입은 동일하나, 순서가 다를 때

+ Recent posts