一、知识点:
1. 父类静态变量;
2.子类静态变量;
3.父类成员变量和构造代码块;
4.父类构造方法;
5.父类成员变量和构造代码块;
6.父类构造方法;
二、静态变量、静态代码块和静态方法的初始化顺序
1. 静态变量;
2.静态代码块;
3.进入主函数类,根据静态方法的调用选择性初始化。
静态变量:如果静态变量是一个对象的引用,需要先初始化这个对象之后才可以将引用指向它。
静态方法:只允许访问静态变量,不能使用this调用,可以使用类名.方法名调用。
静态代码块:在类的初始化时,只执行一次,并且在同一个类的main函数中之前执行。
三、示例
、结果为:2 3 a=110.b=0 1 4
分析:
执行静态变量的初始化,但是该变量引用的是该类的实例。从java的角度,一旦开始初始化静态部分,无论是否完成,后续也不会再重新触发初始化流程了,这导致实例初始化置于静态初始化之前,因此a有值,b没有值。
网友评论