Il this, inteso come riferimento alla istanza "corrente", è quasi sempre superfluo esplicitarlo, tranne quando:
- il campo (variabile di istanza) a cui si vuole fare riferimento è stato "nascosto"
- da una inner-class si vuole usare un membro della classe contenitore che è nascosto dalla inner-class e si usa la forma detta Qualified this.
Ignora per un momento il secondo caso. Il primo invece è molto più comune:
codice:public class Persona { private String nome; public void setNome(String nome) { this.nome = nome; } public String getNome() { return nome; } }
Nel setNome il parametro nome "nasconde" (shadowing) il campo nome. All'interno del setNome, solo "nome" è il parametro, NON il campo. Qui il this è obbligatorio per fare riferimento al campo che riceve l'assegnamento.
Nel getNome invece non c'è nulla che effettua lo shadowing del campo, quindi nome o this.nome è assolutamente equivalente. C'è chi tende a mettere, per stile, il this.nome anche nel getter. Io invece no, ad esempio.


Rispondi quotando