Il this inteso come riferimento a "questo oggetto su cui sto lavorando" puņ essere usato non solo nel costruttore ma anche nei metodi.Originariamente inviato da Darčios89
Ho ben capito che viene usato nel costruttore per riferirsi alle variabili di istanza
Il this(0,0) invoca un costruttore in quella stessa classe che riceve i due int .... c'č? esiste? (non si vede nel pezzo di codice postato) Se sģ ok. Se no č un errore di compilazione.Originariamente inviato da Darčios89
Ora in questo caso intuisco che faccia un pņ la stessa cosa che ho scritto nel primo esempio, ma quindi quando succede una cosa cosģ com' č possibile che senza scrivere nulla automaticamente assegni quei valori alle variabili?codice:public class Prezzo { private int prezzo; private int sconto; public Prezzo() { this(0,0) }
Cosa succede?
Originariamente inviato da Darčios89
Vi chiederei di farmi un altro esempio in cui il this viene usato per richiamare un altro costruttoreE nota come il primo invoca il secondo e il secondo invoca il terzo. E i primi due passano uno o pił "default" mentre l'ultimo č quello "completo" che assegna ai campi.codice:import java.awt.Color; public class PuntoColorato { private int x; private int y; private Color colore; public PuntoColorato() { this(0, 0); } public PuntoColorato(int x, int y) { this(x, y, Color.BLACK); } public PuntoColorato(int x, int y, Color colore) { this.x = x; this.y = y; this.colore = colore; } // ... altro }
Nel primo costruttore si poteva anche invocare direttamente il terzo con this(0, 0, Color.BLACK); anche se cosģ si ripeterebbe il default del colore. Questione di gusti ...
Ed č abbastanza comune/tipico fare cose di questo tipo per offrire una buona "flessibilitą" nella costruzione degli oggetti.
Questo l'hai gią visto nel primo costruttore che hai postato. Il this fa riferimento all'oggetto su cui il metodo č stato invocato (o per il costruttore l'oggetto che č in "costruzione").Originariamente inviato da Darčios89
o come viene usato in altri casi quando lo vedo messo tra le parentesi di un metodo.
Generalmente il this usato in questo senso č superfluo. Una convenzione tipica č quella di usare nomi di parametri uguali a quelli dei campi (gią anche solo per non stare ad inventarsi nuovi nomi) e in tal caso si deve usare this.campo per chiarire che si vuole il campo. Perché un parametro (di metodo/costruttore) "nasconde" il nome del campo con lo stesso nome.

Rispondi quotando