• 目录

对象构造和初始化分析

阅读量: 397 编辑

对象构造和初始化分析

就是一句话:从子类递归向上找,然后从祖先类递归向下执行。

一、对象的构造过程

实例变量的初始化如下(递归调用):

  • 1.设置实例变量的值为缺省的初始值

  • 2.调用对象的构造器和父类的构造器

  • 3.如果构造器中有this()调用,则根据this()调用的参数调用相应的重载构造器,

  • 4.除java.lang.Object类外,调用父类的中的初始化块初始化父类的属性,然后调用父类构造器

  • 5.使用初始化程序和初始化块初始化成员

  • 6.执行构造器方法体中其他语句

二、代码实战

代码的详细解读,可以参考视频教程

祖先类:Person.java

package com.qicong.gj.c07;

/**
 * User: 祁大聪
 */
public class Person {

    private Integer height;

    public Person(){
        System.out.println("Person()");
    }
}

Person.java 的子类:Girl.java

package com.qicong.gj.c07;

/**
 * User: 祁大聪
 */
public class Girl extends Person {
    private Integer age;
    
    public Girl(){
        System.out.println("Girl()");
    }
}

Girl.java 的子类:ChildGirl.java

package com.qicong.gj.c07;

/**
 * User: 祁大聪
 */
public class ChildGirl extends Girl {
    private String name; //null

    public ChildGirl(){
        System.out.println("ChildGirl()");
    }

    public ChildGirl(String name){
        this();
        this.name = name;
        System.out.println("ChildGirl(name)");
    }

    public static void main(String[] args) {
        ChildGirl g = new ChildGirl("sanNi");
        System.out.println(g.name);
    }
}
  • 目录