1、构造代码块的作用:用于对所有对象进行初始化,创建任意对象的时候都会执行构造代码块;(因为构造函数可以重载,所以构造函数只能够对特定对象进行初始化)
2、构造代码块的调用:在创建对象的时候,由jvm统一调用;
3、构造代码块格式:构造代码块位于类内部、成员函数之外;
4、构造代码块、构造函数、成员变量静态初始化的先后顺序
class ConstructModel{ //对类中成员变量进行初始化 int i = 10000; //构造代码块修改成员变量 { i = 200000; System.out.println("我是构造代码块!"); } //构造函数对类中成员变量进行初始化 ConstructModel(int ii) { i = ii; } } //main方法 public class Constructor { public static void main(String []args) { ConstructModel c = new ConstructModel(1); System.out.println("此时i值为:" + c.i); } }
它的输出结果为1,因为这里只是作为笔记记录,就不在详细分析构造代码块、构造函数、成员变量静态初始化三者执行先后顺序了,详细可以自己修改位置进行测试。
系统首先会执行:成员变量静态初始化i=100000;
然后执行构造代码块:i=20000;
最后执行构造函数;
分析:不管任何情况,构造函数都是会被最后执行。构造代码块、成员变量静态初始化执行的先后顺序会根据它们在类中先后顺序执行。