十五,对象的初始化
Person p = new Person("zhang",21);
1,因为new用到了Person.class,所以会先找到person.class文件并加载到内存中
2,执行该类中的静态代码块,如果有的话,给Person.class类进行初始化。
3,在堆内存中开辟空间,分配内存地址。
4,对属性进行默认的初始化,
5,对属性进行显示初始化。
6,对属性进行构造代码块初始化。
7,对对象进行对应的构造函数初始化。
8,将内存地址付给栈内存中的p变量。
1,在对子类对象进行初始化时,父类的构造函数也会运行,那是因为子类的构造函数默认第一行有一条隐式的语句super();
2父类中的数据子类可以直接获取,所以子类对象在建立时,需要先查看父类是如何对这些
数据进行初始化的,所以子类在对象初始化时,要先访问一下父类中的构造函数。
|