2016-07-19 3 views
1

두 클래스의 생성자는 Transactions이며 첫 번째 생성자가 Label 개체이고 다른 하나가 Box 개체 인 마지막 인수가 다릅니다.두 클래스 인스턴스를 구별하는 방법

public class Transactions { 
    private String date; 
    private String kind; 
    private int employee; 
    private Label label; 
    private Box box; 

public Transactions(String date, String kind, int employee, Box box) { 
    this.date = date; 
    this.kind = kind; 
    this.employee = employee; 
    this.box = box; 
} 

public Transactions(String date, String kind, int employee, Label label) { 
    this.date = date; 
    this.kind = kind; 
    this.employee = employee; 
    this.label = label; 
} 


... 

} 

내가 tr입니다 클래스 Transactions의 객체를 생성 한 말할 수 있습니다. 어느 것을 구분할 수 있습니까? Label 개체 또는 Box 개체를 가진 개체? 어떤 생성자가 호출 되었습니까?

+2

어떤 생성자가 호출되었는지는 중요하지 않지만 '상자'또는 '라벨'이 null인지 여부는 확인할 수 있습니다. 좋은 디자인으로 간주 될지 여부는 다른 문제입니다. – Thomas

답변

5

두 개체의 구별이 필요하면 두 개체가 같은 클래스가 아니어야합니다.

예제에서 두 클래스는 공통 수퍼 클래스를 공유 할 수 있거나 공통 정보를 보유하는 특수 유형의 필드를 가져야합니다.

1

this.label == null을 확인하여 방금 호출 된 전화를 쉽게 확인할 수 있습니다.

어떤 생성자가 호출되었는지 가리키는 플래그를 추가 할 수도 있습니다.

어쨌든. 이러한 문제에 직면 해 있다면 코드를 다시 생각해야합니다. 이러한 생성자는 아마도 같은 클래스의 객체를 생성해서는 안됩니다. 어쩌면 어떤 상속, 어쩌면 어떤 구성 ...

관련 문제