初始化数据的过程:
1、所有数据域被初始化为默认值(0、false或null)。
2、按照在类声明中出现的次序依次执行所有域初始化语句和初始化块。
3、如果构造器在第一行调用了第二个构造器,则执行第二个构造器主体。
4、执行这个构造器的主体。
例子代码:
package com.study.write; public class TestConstructor { public static void main(String[] args) { Student student = new Student("youyajie"); } } class Student { public Student(String name) { this(20); this.name = name; System.out.println("initialize name"); } public Student(int age) { this.age = age; System.out.println("initialize age"); } private static int id = 0; private String name; private int age; private int num; static { System.out.println("id:" + id); id = 1; } { num = id++; System.out.println("initialize num:" + num); } }
执行结果:
id:0 initialize num:1 initialize age initialize name