Java beginner confused about usage of constructors
<pre><code>class Date {
    private int year;
    private String month;
    private int day;

    public Date() {
        month = "January";
        year = 1999;
        day = 1;
    }                                  //End of Constructor 1

    public Date(int year, String month, int day) {
        setDate(year, month, day);
    }                                  //End of Constructor 2

    public Date(int year) {
        setDate(year, "January", 1);
    }                                 //End of Constructor 3

    public void setDate(int year, String month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }                                //End of Constructor 4
}

public class Calendar {
    public static void main(String[] args){     
        Date date1 = new Date(2009, "March", 3);
        Date date2 = new Date(2010);
        Date date3 = new Date();
    }
}
</code></pre>

<p>In the code above, which constructors are called for date1, date2, and date3? How do you print the results of date1, date2, and date3 after the constructor has been called? </p>

<p>I tried <code>System.out.println(date1)</code> and so on but it gives me strange strings like <code>u.Date@15db9742</code>. </p>

<p>I was expecting to see 2009 March 1 or something of that sort.</p>