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?
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?
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!