"Ciao, Amigo! Ora ti parlerò di come si creano gli oggetti."
"Cosa c'è di così complicato, zio Rishi? Scrivi nuovo e il nome della classe, indica il costruttore corretto e il gioco è fatto!"
"È vero. Ma cosa succede all'interno dell'oggetto quando lo fai?"
"Che succede?"
"Questo è ciò che accade: l'oggetto viene creato in più fasi."
1) Innanzitutto, la memoria viene allocata per tutte le variabili membro della classe.
2) Quindi la classe base viene inizializzata.
3) Quindi a tutte le variabili vengono assegnati valori, se ne sono specificati.
4) Infine, viene chiamato il costruttore.
"Non sembra molto difficile: prima le variabili, poi il costruttore."
"Vediamo come funziona in un esempio con due classi:"
Codice | Descrizione |
---|---|
|
Dichiara due classi: Pet(pet) e Cat(cat).
Nella classe Cat, vediamo una chiamata esplicita al costruttore della classe base . Ecco cosa succede dopo che la memoria è stata allocata: Quindi la classe Cat inizia ad essere inizializzata. |
|
"Questo crea un po' di confusione. Perché è così complicato?"
"In realtà non è difficile se sai cosa sta realmente accadendo:"
Se una classe non ha costruttori, ne verrà creato uno automaticamente.
Costruttore predefinito | |
---|---|
|
|
Se non chiami il costruttore della classe base, verrà chiamato automaticamente.
Chiamata del costruttore della classe base | |
---|---|
|
|
|
|
Le variabili membro vengono inizializzate nel costruttore.
Inizializzazione delle variabili membro | |
---|---|
|
|
Cosa succede davvero | |
---|---|
|
|
"Ora è molto più chiaro: prima la classe base, poi le variabili al di fuori del costruttore, poi il codice del costruttore."
"Ben fatto, Amigo! Ecco fatto!"
GO TO FULL VERSION