1 /*
2 * Mai multe principii
3 * 1. Variabile statice ale membrilor
4 * 1. Variabilele statice ale membrilor sunt variabile de clasă, iar toate obiectele împart același spațiu de memorie
5 * 2. Declararea și definirea variabilelor statice ale membrilor se execută o singură dată când clasa este încărcată pentru prima dată
6 * 3. Când încarci o clasă pentru prima dată, mai întâi atribui valori inițiale tuturor variabilelor statice ale membrilor în funcție de tip, apoi atașează valori drepte celor cu valori r
7 * 2. Blocul inițial static
8 * 1. Blocurile statice de inițializare sunt executate o singură dată, când clasa este încărcată pentru prima dată
9 * ······ Mai multe variabile statice ale membrilor și ordinea rapidă de apariție a referințelor de inițiere statică sunt executate secvențial······
10 * 3. Variabile dinamice ale membrilor
11 * 1. Definiția variabilelor dinamice de membru este executată înaintea constructorului de fiecare dată când un obiect este instanțiat
12 * 4. Blocul de inițializare dinamică
13*1. Blocul de inițializare dinamică este executat înaintea constructorului de fiecare dată când un obiect este instanțiat
14 * ······ Mai multe variabile dinamice membre și blocurile de inițializare dinamică sunt executate în ordinea în care apar······
15 * Rezumat: În general, când o clasă este încărcată pentru prima dată, aceasta este executată în următoarea ordine, fără implicarea moștenirii
16 * 1. Executați definiția statică a variabilelor de membru și blocul static de inițializare în ordinea apariției
17 * 2. Executați definiția dinamică a variabilelor membre și blocul de inițializare dinamică în ordinea apariției
18 * 3. Execută constructorul
19 * Când se instanțiază din nou un obiect, pot fi executați doar pașii 2 și 3
20 *
21 * ············ Variabilele membre, definițiile și blocurile de inițializare sunt executate înaintea constructorului·········
22 * 5. Când este vorba de moștenire, aceasta se va desfășura în următoarea ordine
23 * 1. Executați definiția variabilei statice de membru și blocul de inițializare statică al clasei părinte și executați definiția variabilei de membru static și blocul de inițializare statică ale subclasei
24 * 2. Executați blocul de definiție a variabilei de membru nestatice și inițializarea dinamică al clasei-părinte și executați metoda de construcție a clasei părinți
25 * 3. Execută definiția variabilelor membre nestatice ale subclaselor și inițializează dinamic blocurile, apoi execută metoda de construcție a subclasei
26 * De asemenea: Dacă metoda folosită în metoda de construcție a clasei părinți a fost rescrisă de subclasă, atunci metoda de rescriere a subclasei este folosită atunci când se apelează constructorul clasei părinte în construcția obiectului subclasă
|