Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como sei quando devo usar o This?

Olá, na Aula Métodos com Retorno, o professor menciona ao usar a palavra-chave THIS quando está tratando de um dos atributos dentro do método que não é obrigatório naquele caso. Como ou quando sei o momento que deve ou não ser usado o THIS?

2 respostas
solução!

Olá Flávio, tudo bem?

Muito interessante a sua dúvida!

Nós costumamos utilizar o this para fazer referência aos atributos da classe, especialmente em métodos que têm parâmetros com o mesmo nome do atributo da classe que estamos utilizando... repare a diferença entre os dois exemplos abaixo: ↓

public class Conta { 
    double saldo;
    int agencia;
    int numero;
    String titular;

    public void deposita(double valor) {
        saldo = saldo + valor;
    }
}

Repare que nesse primeiro exemplo, dentro da classe conta, nós temos alguns atributos, e logo em seguida nós utilizamos o método deposita, que recebe como parâmetro um double que se chama valor... Nesse caso, nenhum dos atributos têm o mesmo nome do parâmetro que utilizamos no método, e estamos dentro da classe, o que nos permite utilizar o atributo saldo a vontade, sem a necessidade do this .

 

Algo diferente ocorre quando temos um atributo da classe com o mesmo nome de um parâmetro de algum método dessa mesma classe: ↓

public class Carro {

    int tamanho;
    String modelo;
    boolean ligado;

    public void ligaCarro(boolean ligado) {
        this.ligado = ligado;
    }
}

Note que nesse segundo exemplo, temos um atributo da classe Carro chamado ligado... e pouco abaixo nós temos o método ligaCarro que define um novo valor para esse atributo, certo?

Repare que o método ligaCarro recebe como parâmetro um boolean que tem o mesmo nome do atributo da classe carro... Como faríamos para saber quem é o atributo da classe e quem é o parâmetro do método?

É nesse momento que usamos o this, ele nos mostra quem é o atributo da classe... no caso this.ligado.

No primeiro exemplo não era necessário utilizar essa referência ao atributo da classe no método, pois nós não tínhamos nomes iguais, então não havia semelhança entre a variável que foi usada como parâmetro do método e qualquer atributo da classe conta.

Resumindo: Precisamos utilizar o this apenas em casos de semelhança entre parâmetros de métodos e atributos da classe, para diferenciar um do outro (fazendo referência ao atributo da classe), e assim conseguimos acessar o atributo da classe dentro do método.

 

Espero ter ajudado, se ainda tiver dúvidas é só falar 😄

Estamos aqui para te ajudar!

Bons estudos!

Olá Guilherme,

Cara, muito obrigado pela ajuda. Agora ficou mais claro para mim. Valeu, Abraço!