所谓默认构造器是指没有参数的构造器。例如,在Employee类的默认构造器:

 
  
  1. public Employee() 
  2.     name = ""
  3.     salary = 0
  4.     hireDay = new Date(); 

    如果在编写一个类时没有编写构造器,那么系统就会提供一个默认构造器。这个默认构造器将所有的实例域设置为默认值。于是,实例域中的数值型数据设置为0、布尔型数据设置为false、所有对象变量将设置为null。

    如果类中提供了至少一个构造器,但是没有提供默认的构造器,则在构造对象时如果没有提供构造参数就会被视为不合法。例如,在例4-2中的Employee类提供了一个简单的构造器:

 
  
  1. Employee(String name, double salary, ing y, int m, int d) 

    对于这个类,构造默认的雇员属于不合法。也就是,调用

 
  
  1. e = new Employee(); 

将会产生错误。

    警告:请记住,仅当类没有提供任何构造器的时候,系统才会提供一个默认的构造器。如果在编写类的时候,给出了一个构造器,哪怕是很简单的,要想让这个类的用户能够采用下列方式构造实例:

 
  
  1. new ClassName(); 

就必须提供一个默认的构造器(即不带任何参数的构造器)。当然,如果希望所有的域被赋予默认值,可以采用下列各式:

 
  
  1. public ClassName()