先上结论:属性赋值的先后顺序(从低到高):默认初始化<显示初始化/在代码块中赋值<在构造器中赋值<实例化以后,通过对象.方法/对象.属性赋值
主要探讨的是,显示初始化和代码块都有给属性赋值时,属性到底是哪一个值
使用Order类测试
public class Order {
{
orderId=4;
}
int orderId=3;
}
结果为3
public class Order {
int orderId=3;
{
orderId=4;
}
}
结果为4
所以,可以得出结论:显示初始化和代码块赋值的优先级是相等的,主要看哪个写在类的结构的后面,就是哪一个赋的值