первый оператор в теле конструктора должен быть этим или супер, если там ничего нет, компилятор по умолчанию сохраняет ключевое слово super () (без аргумента).
поэтому тело конструктора выполняется следующим образом:
Выполнение будет выполняться на основе этого ключевого слова или супер-ключевого слова, тогда
он выполнит все IIB (как подход сверху вниз), затем
он выполнит все отчеты, хранящиеся у программиста (например, sop, initilization)
Class A{
A() {
this(10); //or super,....... execution statement 1
// executing IIB's, execution statement 2
System.out.println("from A()"); // execution statement 3
}
A(int i) {
System.out.println("from A(int)");
}
{
System.out.println("from IIB-1");
}
public static void main(String[] args){
A a = new A(); //calling constructor A()
System.out.println("from main");
}
{
System.out.println("from IIB-2");
}
}
Выход:
from IIB-1
from IIB-2
from A(int)
from A()
from main