在JAVA

时间:2018-05-11 07:03:07

标签: java oop

在阅读stackoverflow上的各种链接后,我有了这样的理解:

这是否正确:

  • 在实例化类时初始化实例变量。
  • 如果仅声明实例变量而未初始化它们,则为它们 将在构造函数执行之前由JVM分配默认值。
  • 如果使用初始化声明实例变量,那么这些 行将在我班级的每个构造函数中移动。因此, 执行将由编译器在构造函数中完成。

感谢。

1 个答案:

答案 0 :(得分:0)

以下是初始化实例变量的可能方法及其顺序:

class MyClass {
    private int var1 = 1;
    private int var2;
    {
        var2 = 2;
    }

    private int var3;

    public MyClass() {
        var3 = 3;
    }
}

您对默认值进行了更正(例如int为0,falseboolean,对象为null

你真的可以说声明中的初始化是"移动到我班级的构造函数&#34 ;;例如,如果声明中的初始化引发异常,则会导致ExceptionInInitializerError这是你不能(即不应该)捕获的东西。