Existe algum caso em que o uso da palavra chave "this" é obrigatória?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Existe algum caso em que o uso da palavra chave "this" é obrigatória?
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