在Employer类中定义了静态成员变量nextID与成员变量ID
class Employer{
private static int nextID;
private String name;
private double salary;
private LocalDate hireDay;
private int ID=0;
......
此时nextID并没有赋初值,而ID初值等于0。下面在Employer类中定义了一个将nextID赋给ID的方法:
public void setID()
{
ID = nextID;
nextID++;
}
在main函数里面打印出三个Employer对象的ID:
public static void main(String[] args)
{
Employer[] staff = new Employer[3];
staff[0] = new Employer("jack",3000,1987,5,15);
staff[1] = new Employer("bob",4000,1998,2,20);
staff[2] = new Employer("Tom",5000,1983,4,18);
for(Employer s :staff) {
System.out.println("nextID:"+s.getnextID());
s.setID();
System.out.println("name="+s.getName()+",salary="+s.getSalary()+",hireDay="+s.gethireDay()+",ID="+s.getID());
}
}
结果为
可知,定义静态成员变量不需要赋初值,初值为0