重载构造器
用this调用另一个构造器
无参数构造器
实例域初始化
对象初始化块
静态初始化块
import java.util.*;
public class Test
{
public static void main(String args[])
{
Employee[] staff = new Employee[3];
staff[0] = new Employee("Bob", 40000);
staff[1] = new Employee(60000);
staff[2] = new Employee();
for(Employee e: staff)
{
System.out.println("name=" + e.getName() + ", salary=" + e.getSalary() + ", id=" + e.getId());
}
}
}
class Employee
{
private static int nextId;
private int id;
private String name = ""; //实例域初始化
private double salary;
static //静态初始化块
{
Random gen = new Random();
nextId = gen.nextInt(10000);
}
{ //对象初始化块
id = nextId;
nextId++;
}
//三个重载构造器
public Employee(String n, double s)
{
name = n;
salary = s;
}
public Employee(double s)
{
this("Employee#"+nextId, s); //调用另一个构造器
}
public Employee()
{
//name=""、salary=0、id已经对象初始化块中初始化了
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public int getId()
{
return id;
}
}
output:
name=Bob, salary=40000.0, id=4789
name=Employee#4790, salary=60000.0, id=4790
name=, salary=0.0, id=4791