PDA

Visualizza la versione completa : [JAVA] this


BlueJ
20-12-2004, 12:11
Mi spiegate bene (possibilmente con degli esempi) l'uso del this?

grazie a tutti :ciauz:

caimano73
20-12-2004, 12:27
Originariamente inviato da BlueJ
Mi spiegate bene (possibilmente con degli esempi) l'uso del this?

grazie a tutti :ciauz:

this il puntamento alla classe stessa.
ad esempio, se la classe ha una variabile privata di nome pippo e di tipo stringa, la riga this.pippo punta proprio a tale variabile.
E' utile, ad esempio, quando all'interno di un metodo occorre risalire ad una variabile della classe stessa coperta da una variabile locale.
Considera ad esempio un metodo che imposta la varibile pippo di cui sopra.

public void setPippo (String pippo){
this.pippo = pippo;
}

all'interno del metodo la variabile pippo della classe e coperta dalla varibile pippo ricevuta come parametro, per cui per poter accedere al membro della classe devi usare this.

ciao

:ciauz:

BlueJ
20-12-2004, 14:13
ok...questo il puntatore this...
e per quello che rigurda this()? :dh:

Angelo1974
20-12-2004, 15:39
Ciao; allora this() serve a fare l'overloading del costruttore; infatti supponimao che abbia una classe chiamata Utente con nome cognome e telefono; supponimao che tu foirnaisca 2 costruttori alla classe, puoi fare una cosa del tipo:


public class Utente {

private String nome;
private String cognome;
private String telefono;

public Utente( String nome, String cognome ){

//Con this. accedo alle variabili nome e cognome della classe
this.nome = nome;
this.cognome = cognome;
}

public Utente(String nome, String cognome, String telefono ){
//Richiamo il costruttore definito precedentemente e gli
//faccio fare quello che faceva prima
this( nome, cognome );
this.telefono = telefono;
}
}

Occhio perch in questo caso il this() deve essere la PRIMA istruzione che deve apparire; se ad esempio tu facessi:


public Utente(String nome, String cognome, String telefono ){

this.telefono = telefono;
this( nome, cognome );

}

avresti un errore.
Analogamente avresti potuto fare:


public class Utente {

private String nome;
private String cognome;
private String telefono;

public Utente( String nome, String cognome ){

//Con this. accedo alle variabili nome e cognome della classe
this.nome = nome;
this.cognome = cognome;
}

public Utente(String nome, String cognome, String telefono ){

this.nome = nome;
this.cognome = cognome;
this.telefono = telefono;
}
}

BlueJ
20-12-2004, 16:10
perfetto 6 stato chiarissimo!!!!
grazie :ciauz:

Loading