java中三种方式初始化数据域的方法

来源:互联网 发布:牙齿填骨粉的利弊 知乎 编辑:程序博客网 时间:2024/06/15 14:59
java中三种方式初始化数据域的方法:
1.在构造器中设置值
2.在声明中赋值
3.初始化块(initialization block),在一个类的声明中,可以包含多个代码块,
只要构造类的对象,这些块就会被执行,例如:
class Employee{
public Employee(String name,double salary){
this.name=name;
this.salary=salary;
}
public Employ(){
name="";
salary=0;
}
...
private static int nextId;
private int id;
private String name;
private double salary;
...

//obejct initialization block
{
id=nextId;
nextId++;
}
}
//简单分析:
在这个示例中,无论使用哪个构造器构造对象,id域都在对象初始化块中被初始化,首先运行初始化块,
然后在运行构造的主体部分


//调用构造器的具体处理步骤:


(1) 所有数据域被初始化为默认值(0,null)
(2) 按照在类声明中出现的次序,依次执行域初始化语句和初始化块
(3) 如果构造器第一行调用了第二个构造器,则执行第二个构造主体
(4) 执行这个构造器的主体


//功能代码:将雇员ID的起始值赋给一个小于10000的随机整数
//static initialization block
static {
Random generator=new Random();
nextId=generator.nextInt(10000);
}
当在类第一次加载的时候,就会进行静态域的初始化,与实例域一样,除非将他们显示设置为其他值,
否则默认的初始值为0,null,false.所有的静态初始化语句以及静态初始化块都将依照类定义的顺序执行



0 0
原创粉丝点击