1 /*
2 * Diversi principi
3 * 1. Variabili membri statiche
4 * 1. Le variabili membri statiche sono variabili di classe, e tutti gli oggetti condividono lo stesso spazio di memoria
5 * 2. La dichiarazione e definizione delle variabili membri statiche viene eseguita solo una volta quando la classe viene caricata per la prima volta
6 * 3. Quando si carica una classe per la prima volta, si assegnano prima i valori iniziali a tutte le variabili membri statiche in base al tipo, poi si aggiungono i valori a destra a quelli con valori r
7 * 2. Blocco iniziale statico
8 * 1. I blocchi di inizializzazione statica vengono eseguiti solo una volta quando la classe viene caricata per la prima volta
9 * ······ Più variabili membri statiche e l'ordine di occorrenza rapida di riferimento per l'iniziazione statica vengono eseguiti in sequenza······
10 * 3. Variabili dinamiche dei membri
11 * 1. La definizione delle variabili membri dinamiche viene eseguita prima del costruttore ogni volta che un oggetto viene istanziato
12 * 4. Blocco di inizializzazione dinamica
13*1. Il blocco di inizializzazione dinamica viene eseguito prima del costruttore ogni volta che un oggetto viene istanziato
14 * ······ Più variabili dinamiche membri e blocchi di inizializzazione dinamica vengono eseguiti nell'ordine in cui appaiono······
15 * Sommario: In generale, quando una classe viene caricata per la prima volta, viene eseguita nel seguente ordine, senza l'eredità coinvolta
16 * 1. Eseguire la definizione statica della variabile membro e il blocco di inizializzazione statica nell'ordine di occorrenza
17 * 2. Eseguire definizione dinamica della variabile membro e blocco di inizializzazione dinamica nell'ordine di occorrenza
18 * 3. Eseguire il costruttore
19 * Quando si istanzia nuovamente un oggetto, possono essere eseguiti solo i passaggi 2 e 3
20 *
21 * ············ Le variabili membri, le definizioni e i blocchi di inizializzazione vengono eseguiti prima del costruttore·········
22 * 5. Quando si tratta di eredità, essa deve essere eseguita nel seguente ordine
23 * 1. Eseguire la definizione statica della variabile membro e il blocco di inizializzazione statica della classe genitore, ed eseguire la definizione statica della variabile membro e il blocco di inizializzazione statica della sottoclasse
24 * 2. Eseguire la definizione della variabile membro non statica e il blocco di inizializzazione dinamica della classe genitore, ed eseguire il metodo di costruzione della classe genitore
25 * 3. Eseguire la definizione delle variabili membri non statiche delle sottoclassi e inizializzare dinamicamente i blocchi, ed eseguire il metodo di costruzione delle sottoclassi
26 * Inoltre: Se il metodo usato nel metodo di costruzione della classe madre è stato riscritto dalla sottoclasse, allora il metodo di riscrittura della sottoclasse viene usato quando si chiama il costruttore della classe genitore durante la costruzione dell'oggetto sottoclasse
|