Java 생성자와 오버로딩 예제 – 2

public class Date { 
    private int year; 
    private String month; 
    private int day; 
 
    public Date() { 
        this(1900,"1월",1); //여기서 this는 19번째줄을 의미. 
        //아무것도 입력치 않을경우 
    } 
 
    public Date(int year) { 
        this(year,"1월",1); //마찬가지로 this는 19번째줄을 의미 
        //year만 입력했을 경우 
    } 
 
    public Date(int year, String month, int day) { 
        this.year = year; // this.year의 this의 의미는 현재 객체의 year, 즉 7번째 줄을 의미. 
        this.month = month; 
        this.day = day; 
    } 
 
    @Override 
    public String toString() { 
        return "Date [year = "+ year + ",month = " + month + ",day = " + day + "]"; 
    } //toString 오버라이딩. to String이 호출될 경우 오버라이드된 값을 리턴함. 
} 

 

public class DateTest { 
    public static void main(String[] args) { 
        Date date1 = new Date(2015,"8월",10); //첫번째 Date는 모든 값을 넣음 
        Date date2 = new Date(2020); //두번째 Date는 연도만 
        Date date3 = new Date(); //세번째 Date는 디폴트값 
 
        System.out.println(date1); //하나씩 출력 
        System.out.println(date2); 
        System.out.println(date3); 
    } 
}