/**/ /** @version 1.00 2008-05-25 @author wangyifei*/ import java.util. * ; public class ConstructorTest ... { public static void main(String[] args) ...{ // fill the staff array with three Employee objects Employee[] staff = new Employee[3]; staff[0] = new Employee("Harry", 40000); staff[1] = new Employee(60000); staff[2] = new Employee(); // print out information about all Employee objects for (int i = 0; i < staff.length; i++) ...{ Employee e = staff[i]; System.out.println("name=" + e.getName() + ",id=" + e.getId() + ",salary=" + e.getSalary()); } }} class Employee ... { // three overloaded constructors public Employee(String n, double s) ...{ name = n; salary = s; } public Employee(double s) ...{ // calls the Employee(String, double) constructor this("Employee #" + nextId, s); } // the default constructor public Employee() ...{ // name initialized to ""--see below // salary not explicitly set--initialized to 0 // id initialized in initialization block } public String getName() ...{ return name; } public double getSalary() ...{ return salary; } public int getId() ...{ return id; } private String name = ""; // instance variable initialization private double salary; private int id; private static int nextId; // object initialization block ...{ id = nextId; nextId++; } // static initialization block static ...{ Random generator = new Random(); // set nextId to a random number between 0 and 9999 nextId = generator.nextInt(10000); }}