java 배우고 있는데 생성자 파트까지 왔는데 생성자를 이해를 잘 못하겠어

            객체 생성시키는 역활하는게 생성자인건가?

             가령 예로 

class Mydate{
        private int year;
        private int month;
        private int day;
        public Mydate(){
                
                year=2012;
                month=4;
                day=18;
        }
        public Mydate(int new_year,int new_month,int new_day){
                year=new_year;
                month=new_month;
                day=new_day; 
        }
        public void print(){
                System.out.println(year+ "/" + month + "/" + day);
                }
}
public class ConstructorTest {
        public static void main(String[] args) {
                Mydate d = new Mydate();
                d.print();
                Mydate d2 = new Mydate(2012,4,19);
                d2.print();
                Mydate d3 = new Mydate();
                d3.print();

이런 소스코드가 있다고 쳤을때  Mydate d 란 객체를 생성시키는 역활을 하는게 public Mydate란 생성자인거야?

헤깔리네 좀 쉽게 이해할 수 있는 방법없을까?