在阅读stackoverflow上的各种链接后,我有了这样的理解:
这是否正确:
感谢。
答案 0 :(得分:0)
以下是初始化实例变量的可能方法及其顺序:
class MyClass {
private int var1 = 1;
private int var2;
{
var2 = 2;
}
private int var3;
public MyClass() {
var3 = 3;
}
}
您对默认值进行了更正(例如int
为0,false
为boolean
,对象为null
。
你真的可以说声明中的初始化是"移动到我班级的构造函数&#34 ;;例如,如果声明中的初始化引发异常,则会导致ExceptionInInitializerError
这是你不能(即不应该)捕获的东西。