对象构造和初始化分析

阅读量: 4 编辑

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

一、对象的构造过程

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

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

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

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

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

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

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

二、编程实战

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

祖先类:Person.java

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

    private Integer height;

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

Person.java 的子类:Girl.java

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

Girl.java 的子类:ChildGirl.java

/**
 * 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);
    }
}
爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司