Uczę się java i przypadkowo natknąłem się na następujący kod, gdzie domyślny konstruktor jest wykonywany po metodzie.Java - Metoda wykonana przed domyślnym konstruktorem
public class ChkCons { int var = getVal(); ChkCons() { System.out.println("I'm Default Constructor."); } public int getVal() { System.out.println("I'm in Method."); return 10; } public static void main(String[] args) { ChkCons c = new ChkCons(); } }
WYJŚCIE:
I'm in Method. I'm Default Constructor.
Czy ktoś proszę mi wyjaśnić, dlaczego tak się stało?
Dzięki.
Pola są inicjalizowane przed wywołaniem konstruktora, ponieważ inicjalizujesz pole wywołując metodę 'getVal', jest ona wywoływana przed constreuctor – MadProgrammer
W porządku, a następnie getVal() wykona przed STATYCZNYM BLOKEM? –
Konstruktor? Nie, ale blok "statyczny" (z pamięci) zostanie wykonany raz przed polami – MadProgrammer