JSem: 2.3
|
Nell'esempio precedente, per creare un oggetto della classe
Rettangolo, dobbiamo inizializzare le sue variabili di istanza; la funzione
Dim(int a, int b) semplifica questo
passaggio ma sarebbe preferibile che le impostazioni delle variabili fossero
eseguite nel momento in cui l'oggetto viene creato. Si può raggiungere questo
obbiettivo usando dei costruttori.
Un costruttore è un metodo, ma con due differenze importanti:
1) Un costruttore ha lo stesso nome della classe
2) Un costruttore non ha nessun tipo di ritorno, neppure void
|
Facciamo un esempio creando un costruttore per la nostra classe Rettangolo:
class Rettangolo{
int latoa;
int latob;
//costruttore
Rettangolo(int a, int b){
latoa = a;
latob = b;
}
//metodo che calcola l'area
int area(){
return latoa*latob;
}
}
|
Esempio:
import java.applet.*;
import java.awt.*;
public class RettDemo3 extends Applet{
Rettangolo r1 = new Rettangolo(2,3);
Rettangolo r2 = new Rettangolo(10,20);
public void paint(Graphics g){
g.drawString("L'area di r1 è: " + r1.area(),10,25);
g.drawString("quella di r2 è: " + r2.area(),10,50);
}
}
|
l'introduzione del costruttore ha notevolmente semplificato il codice.
Torniamo un attimo sull'operatore
new
Negli esempi precedenti, per creare un oggetto Rettangolo, l'istruzione era:
Rettangolo r = new Rettangolo();
Le parentesi dopo Rettangolo sono necessarie.
In realtà per creare r si fa una chiamata al costruttore della classe; se il costruttore
non è stato definito (come negli esempi precedenti), Java provedde un costruttore di default che inizializza
le variabili con valori di default (0 per quelle di tipo int, ecc...), quindi le
parentesi si riferiscono all'elenco, vuoto, dei parametri del costruttore di default.
|