package Demo;
import java.util.Random;
public class Demo1 {
public static void main(String[] args) {
//fill the staff array with three Employee objects
var 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(Employee e : staff)
System.out.println("name " + e.getName() + ",id=" + e.getId() + ",salary=" + e.getSalary());
}
}
class Employee
{
private static int nextId;
private int id;
private String name = "";//instance field initialization
private double salary;
//static initialization block
static
{
var generator = new Random();
//set nexId to a random number between 0 and 9999
nextId = generator.nextInt(10000);
}
//object initialization block
{
id = nextId;
nextId++;
}
//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()
{
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public int getId()
{
return id;
}
}
执行结果:
name harry,id=9635,salary=40000.0
name Employee #9636,id=9636,salary=60000.0
name ,id=9637,salary=0.0