Gostaria de saber mais sobre o uso do “this”, pra que ele server e como ele funciona, se possivel façam uma linha de codigo exemplificando. 
Uso do "This"
4 Respostas
O this server para referenciar a própria classe, geralmente ele é usado quando ocorre sombreamento de variáveis (quando um parâmetro ou uma variável local tem o mesmo nome de um atributo da classe):
class Teste {
private int numero;
public void setNumero(int numero) {
// O this.numero representa o atributo numero da classe Teste
// Já o numero representa o parâmetro
this.numero = numero;
}
}
Espero ter ajudado…
Flw…
Você pode usar o this também para chamada de outro construtor com diferente assinatura, e tem que ser usado na primeira linho do método:
Exemplo:
public class Teste{
private int x,y,z;
public Teste(int x, int y, int z){
this.x = x;
this.y = y;
this.z = z;
}
public Teste(int xCoord, int yCoord){
this(xCoord, yCoord, 0);
}
}
Ex…
public class Teste{
String nome;
String idade;
public void setNome(String nome){
this.nome = nome;
}
}
Neste caso o this está sendo usado para fazer referência ao atributo nome, geralmente em java não existe a necessidade de especificar com this, mas o mesmo geralmente é utilizado por questões de “boas-praticas”.
Por ex. o codigo abaixo tbm funcionaria corretamente.
public class Teste{
String nome;
String idade;
public void setNome(String recebeNome){
nome = recebeNome;
}
}
Acho que é isso.
Abraco…
O this representa o objeto atual, que chamou o método.
class Teste {
private int x;
public Teste (int paramX) {
this.x = paramX;
}
public int getX() { return this.x; }
}
class UsaTeste {
public static void main(String[] args) {
//*** Na linha abaixo, é como se, em tempo de execução,
//*** fosse colocado no construtor obj.x = paramX; pois
//*** o this no momento se refere a obj.
Teste obj = new Teste(1000);
//*** Mesma idéia na linha de baixo. É como se,
//*** em tempo de execução, fosse colocado
//*** no méodo getX(): return obj.x, pois foi
//*** obj que chamou o método, assim, a máquina
//*** virtual entende o this como obj.
System.out.println(obj.getX());
}
}
Espero tê-lo ajudado.
Abraços.