public class Dog {
public static Dog dog = new Dog();
static final int val1 = -5;
static int val2 = 3;
public int val3;
public Dog() {
val3 = val1 + val2;
}
public static void main(String[] args) {
System.out.println(Dog.dog.val3);
}
}
Выходной сигнал -5
Из этого результата кажется, что инициализация val2
выполняется до завершения члена dog
и его экземпляра.
Почему этот порядок выглядит следующим образом?