- 设置实例变量的值为缺省的初始值
- 调用对象的构造器,绑定构造器参数
- 如果构造器中有this()调用,则根据this()调用的参数调用响应的重载构造器,然后转到步骤5,否则转到步骤4
- 除java.lang.Object类外,调用父类中的初始化块初始化父类的属性,然后调用父类构造器,如果在构造器中有super()调用,则根据super()中的参数调用父类中相应的构造器
- 使用初始化程序和初始化块初始化成员
- 执行构造器方法体中其他语句
1 Person.java 2 3 public class Person { 4 5 6 Person(){ 7 System.out.println("Person空参构造器-----第四步"); 8 } 9 10 { 11 System.out.println("Person初始化 块------第三步"); 12 } 13 static{ 14 System.out.println("初始化器----------第一步"); 15 } 16 }
1 User.java 2 3 public class User extends Person{ 4 5 String UserName; 6 String Password; 7 8 User(){ 9 super(); 10 System.out.println("User空参构造器--------第六步"); 11 } 12 13 User(String UserName,String Password){ 14 this(); 15 this.UserName = UserName; 16 this.Password = Password; 17 System.out.println("User有参构造器---------第七步"); 18 } 19 //初始化块 20 { 21 System.out.println("初始化块-----------第五步"); 22 } 23 static{ 24 System.out.println("初始化器---------第二步"); 25 } 26 }
测试一下自己写的构造器方法
1 Test.java 2 3 public class Test { 4 5 public static void main(String[] args) { 6 User user = new User("zhangsan","123456"); 7 } 8 }