Costruttori
Un costruttore per
una classe e' definito come un metodo all'interno della classe stessa.
La dichiarazione di
un costruttore deve rispettare le seguenti regole:
-
il nome del costruttore
deve coincidere con quello della classe;
-
un costruttore non puo'
avere un tipo (nemmeno void);
-
deve avere una lista di
parametri formali, eventualmente vuota.
-
non puo' avere static
come modificatore;
Anche per i costruttori
si applica il meccanismo dell'overloading: una classe puo' avere
piu' costruttori purche' abbiano firma diversa (cioe' i parametri formali
devono differire nel tipo e/o nel numero).
Se in una classe e'
definito almeno un costruttore, l'operatore new dopo aver creato
l'istanza della classe chiama automaticamente sul nuovo oggetto un costruttore,
che viene determinato in base alla lista dei parametri attuali.
Quindi, ricapitolando, la
valutazione di un'espressione del tipo
new <nome-classe>(<parametri>)
consiste di tre fasi:
-
creazione di un nuovo
oggetto di tipo <nome-classe>,
-
esecuzione del costruttore
opportuno (determinato da <parametri>)
-
restituzione del riferimento
al nuovo oggetto.
Se nella classe non e'
definito nessun costruttore, allora <parametri>
deve essere la lista vuota e, concettualmente, viene invocato un costruttore
default fornito dal sistema che non fa nient'altro che inizializzare le
variabili d'istanza con il corrispondente valore default.
