Stiamo parlando del paragrafo relativo all'uso di this con le variabili.
Il manuale fa questo esempio
codice:
public class Cliente
{
private String nome, indirizzo, numeroDiTelefono;
public void setDati(String nome, String indirizzo, String numeroDiTelefono)
{
this.nome = nome;
this.indirizzo = indirizzo;
this.numeroDiTelefono = numeroDiTelefono;
}
}
In questo caso utilizzando this viene specificato che le variabili referenziate (nome, indirizzo e numeroDiTelefono) appartengono all'oggetto che va ad invocare il metodo setDati.
Successivamente il manuale fa notare che se scrivessimo invece questo codice
codice:
public class Cliente
{
private String nome, indirizzo, numeroDiTelefono;
public void setNumeroDiTelefono(String numeroDiTelefono)
{
this.numeroDiTelefono = numeroDiTelefono;
}
public void setIndirizzo(String indirizzo)
{
this.indirizzo = indirizzo;
}
public void setNome(String nome)
{
this.nome = nome;
}
}
il compilatore, non trovando riferimenti espliciti, considererebbe le variabili sempre locali e quindi non otterremmo il risultato desiderato.
Io adesso mi chiedo, ma i due codici non sono equivalenti? La differenza sta che nel primo viene fatto in un'unico metodo, nel secondo invece in tre metodi separati. Alla fine la differenza quale sarebbe? Io direi solo che nel primo basterebbe invocare sull'oggetto un solo metodo (setDati), nel secondo invece bisognerebbe fare tre invocazioni separate sull'oggetto.