构造函数的作用:创建对象时,给对象的部分属性或全部属性进行初始化。
简单的说:构造函数的作用就是给对象进行初始化。
一般构造函数分为 无参构造函数和有参构造函数,具体使用哪一个,视情况而定。
构造代码块的作用:给所有对象进行统一初始化。可以提高代码的复用性
构造代码块格式:
{
构造代码块内容
}
构造代码块要注意的细节:
1构造代码块的代码是在创建任意对象时都会调用的,每创建一个对象就会调用一次构造代码块的代码;
2而且构造代码块的代码 先于 构造函数 执行;
3构造代码块的代码,其实是在构造函数中执行的,而且是放在最前面,而不是追加。(这一点,可以通过反编译可以验证)
4构造代码块代码和成员变量的显示赋值动作的先后顺序:由上到下,即代码顺序。
练习:
public class Test {
int i = 1;
public Test() {
i = 2;
}
{
i = 3;
}
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.i);
}
}
结果是:2
另外 ,构造函数的赋值永远是在成员变量赋值和构造代码块赋值之后