Ci sono tre termini di terminologia associati a questo argomento: dichiarazione, inizializzazione e istanziazione.
Lavoro dal retro in avanti.
istanze
Questo è quando la memoria si alloca per un oggetto. Questo è ciò che sta facendo la parola chiave new
. Un riferimento all'oggetto che è stato creato viene restituito dalla parola chiave new
.
inizializzazione
Questo è quando i valori sono inseriti nella memoria allocata. Questo è ciò che fa il Constructor di una classe quando si utilizza la parola chiave new
.
Una variabile deve anche essere inizializzata avendo il riferimento a qualche oggetto in memoria passato ad esso.
Dichiarazione
Questo è quando si statali per il programma che ci sarà un oggetto di un certo tipo esistente e che il nome di quell'oggetto sarà.
Esempio di inizializzazione e di istanze sulla stessa linea
SomeClass s; // Declaration
s = new SomeClass(); // Instantiates and initializes the memory and initializes the variable 's'
Esempio di inizializzazione di una variabile su una linea diversa di memoria
void someFunction(SomeClass other) {
SomeClass s; // Declaration
s = other; // Initializes the variable 's' but memory for variable other was set somewhere else
}
avrei anche vivamente lettura this article sulla natura di come Java gestisce le variabili in transito.
Non c'è nulla come inizializzare una classe. Intendi l'inizializzazione di una variabile? – Femaref
intendi ** inizializza un oggetto ** ?? – PermGenError
@Femaref, forse il termine non è tecnico, ma penso che sia corretto descrivere inizializzatori e costruttori statici come inizializzando rispettivamente una classe e un'istanza. –