Una classe può avere più costruttori. Se ne ha di più semplicemente è perchè chi ha scritto la classe vuole offrire più modi diversi per costruire 1 oggetto di quella classe, magari permettendo di passare più o meno dati a seconda del costruttore. Alla fin fine si tratta solo di un principio di "flessibilità".
Prendi per esempio la classe java.awt.Color. Ha svariati costruttori:
public Color(float r, float g, float b)
public Color(float r, float g, float b, float a)
public Color(int r, int g, int b)
public Color(int r, int g, int b, int a)
....e altri....
Pertanto puoi costruire un oggetto Color scegliendo il costruttore che riceve i dati che hai a disposizione, con alpha se ce l'hai o senza alpha, ecc...
Poi all'interno di un costruttore, come PRIMA istruzione è lecito invocare un altro costruttore della stessa classe. Questo lo si fa per riutilizzare il codice di un altro costruttore evitando ripetizioni.
Sempre in Color viene fatto:
codice:public Color(int r, int g, int b) { this(r, g, b, 255); }
Ovvero il costruttore che riceve r/g/b passa la palla all'altro costruttore
public Color(int r, int g, int b, int a)
passando 255 come a (alpha). Così si riutilizza il codice.



Rispondi quotando
