A palavra reservada this?

bom dia pessoal, eu vou fazer um teste amanha, e gostaria de saber mais sobre esta “palavra”, a verdade é q nao sei nada, nunca a aausei, mas num dos testes anteriores q tenho usado para estudar aparece uma questao sobre ela, entao gostaria de saber mais.

so por curiosidade a questao é a seguinte:

[quote]1) [1] A palavra reservada this?
[] ? refere o objecto implícito na chamada a um método de instância.
[] ? refere o objecto implícito na chamada a um método estático.
[] ? refere o objecto implícito na chamada a um qualquer método e é usado para aceder às variáveis de instância.[/quote]
(é suposto por um ‘x’ na resposta correcta)
e é tudo :smiley:

[] ? refere o objecto implícito na chamada a um método de instância.

A palavra reservada this representa o objeto em execução. Para ficar mais claro vai um simples exemplo

class MinhaClasse{

private int numero;

MinhaClasse(int numero){ //sombreamento da variável de instancia.

  this.numero = numero; // se você não colocar o this o compilador não sabe quem é quem

}
}

Basta lembrar que a palavra chave this é sempre para o objeto em execução.

Caso alguem tenha uma explicação mais fácil…

muito obrigado davidarius, percebi perfeitamente, mas nesse caso nao seria melhor usar uma variavel inteira com um nome diferente no metodo MinhaClass? por exemplo:
MinhaClass(int num){
numero = num;

Em geral não, porque a boa prática aconselha a dar nomes significativos para suas variáveis, dessa forma, não seria uma boa ficar criando outros nomes, só pra evitar o uso da palavra this. Um caso clássico de uso seria também a inserção de um nó em uma árvore.

[code]public class Noh{
private List listaDeFilhos=new ArrayList();
private Noh nohPai;

public void setNohPai(Noh nohPai){
this.nohPai=nohPai;
}

public void addNohFilho(Noh nohFilho){
listaDeFilhos.add(nohFilho);
nohFilho.setNohPai(this); //repare nessa linha
}
}[/code]

Veja no exemplo a linha que eu coloquei comentário. Toda vez que vc adiciona um filho a um nó isso significa que o pai do nó inserido é o próprio nó em questão. Assim, vc tem que adicioná-lo como pai. E para fazer isso, vc usa a palavra this para se referir ao objeto em questão.
Outro Exemplo:

[code] public class ConstrutorSobrecarregado{

public ConstrutorSobrecarregado(int id, boolean flag){}

public ConstrutorSobrecarregado(int id){ this(id,true)}
}

Nesse caso, no segundo construtor vc usa o this para indicar que quer utilizar o construtor do objeto em questão.
Enfim, a palavra this sempre se refere ao próprio objeto.