Originariamente inviato da Darčios89
Ho ben capito che viene usato nel costruttore per riferirsi alle variabili di istanza
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
codice:
public class Prezzo
{
private int prezzo;
private int sconto;

public Prezzo()
{
this(0,0)
}
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?
Cosa succede?
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
Vi chiederei di farmi un altro esempio in cui il this viene usato per richiamare un altro costruttore
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
}
E 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.
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.

Originariamente inviato da Darčios89
o come viene usato in altri casi quando lo vedo messo tra le parentesi di un metodo.
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").

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.