3
respostas

uso do This

Existe algum caso em que o uso da palavra chave "this" é obrigatória?

3 respostas

Não chega a ser obrigatório, pois o compilador não obriga. Mas existe situação em que a falta do this pode gerar dados errados

Um exemplo seria quando você tem um dos parametros de um método com o mesmo nome de um atributo, caso você queira passar o conteúdo da variável do que veio do parametro para o atributo instanciado o compilador vai entender que é a variável do parâmetro para o do próprio parâmetro Como no exemplo a seguir vejamos num setter

public class Conta 
{
    private int numero ;

    public void setNumero(int numero)
    {
/*Sem o this.*/ numero=numero;
    }

}
-----------outro código------------------------
public class ContaMaker()
{
    public static void main(String [] args)
    {
        Conta conta = new Conta();
        conta.setNumero(155);
        System.out.println(conta.getNumero());
    }
}

A saída será 0 (o qual é o valor inicial quando você dá new no exemplo acima ), caso o this.numero fosse colocado o compilador entenderia que você estava querendo colocar o conteudo da variável do método setNumero dentro da instância numero e a saída do programa seria 155

Logo conclui-se que, sim, existem casos que o uso do this é obrigatório para o programa retornar ou fazer aquilo que você deseja.

pelo que entendi o o uso do .this seria mais para encapsulamento, ou seja, voce definir na sua propria classe que voce estalando "disto" e nao de uma variavel local criada no metodo, e sim daquela que vc quer mesmo referenciada