![]() ![]() |
|
Il processo di creazione di un oggetto consiste
in
[Naturalmente lo stesso vale anche per gli array]. Lo spazio necessario viene allocato in una zona di memoria chiamato heap. Come sappiamo, un oggetto viene creato con la primitiva new: new <nomeClasse>(<parametri>)Ad esempio: new BankAccount(1000) // crea un nuovo conto con saldo 1000La primitiva new fa concettualmente tre cose:
|
![]() ![]() |
|
I costruttori si dichiarano all'interno di una
classe essenzialmente come i metodi, ma rispettando le seguenti regole:
(concettualmente, il costruttore restituisce sempre l'oggetto appena creato);
Se in una classe è definito almeno un costruttore,
l'operatore new chiama sull'oggetto appena creato
il costruttore determinato dalla lista dei parametri attuali (se non esiste,
il compilatore segnala un errore del tipo "cannot resolve symbol").
|
![]() ![]() |
|
Ogni classe ha un costruttore default che
inizializza le variabili d'istanza con il corrispondente valore default.
Questo costruttore non ha parametri, ed è disponibile solo se
nella classe non è definito nessun costruttore.
In questo caso, se il programmatore vuole continuare a rendere disponibile un costruttore senza parametri, deve dichiararlo esplicitamente (come abbiamo fatto nella classe BankAccount). |
![]() ![]() |
|
Nel corpo di un metodo o di un costruttore, la
variabile predefinita this
denota l'oggetto che sta eseguendo il medodo (o costruttore).
In generale non si usa this,
perché si può fare riferimento a variabili e metodi d'istanza
direttamente con il loro nome.
Ma in alcuni casi può essere utile, ad esempio
per usare come parametri di un costruttore gli stessi nomi delle variabili
d'istanza:
|
![]() ![]() |
|
L'identificatore this può
essere usato anche come nome di un metodo. In questo caso invoca un costruttore
della classe, e può essere invocato solo come prima istruzione
di un altro costruttore.
|
![]() ![]() |
|
Ci sono due tipi di variabili in Java, che sono
trattate in modo diverso:
Variabili locali dei metodi
|
![]() ![]() |
|
![]() ![]() |
Variabili statiche e di istanza
|