Tenho uma dúvida quando se faz o método get.
O correto não seria usar o this quando quero fazer o retorno?
public String getNome() {
return this.nome;
}
public String getNome() {
return nome;
}
Tenho uma dúvida quando se faz o método get.
O correto não seria usar o this quando quero fazer o retorno?
public String getNome() {
return this.nome;
}
public String getNome() {
return nome;
}
Fala Daniel, tudo certo?
A palavra reservada this
faz menção ao objeto em questão e é uma boa prática utilizá-la ao referenciar-se ao próprio objeto, como por exemplo quando estamos nos referenciando aos seus atributos dentro de seus métodos, como no caso de Getters e Setters.
No entanto, seu uso é opcional, não sendo obrigatório o uso da referência this
quando não há conflito de nomes de variáveis. Como assim?
Dentro do exemplo dado:
public String getNome() {
return nome;
}
Onde não fazemos o uso do this
, o que acontece é o seguinte: o Java procura por referências com esse nome de variável, e não encontra conflitos, pois há apenas uma variável chamada nome
, que é seu atributo! Como há apenas o atributo, ele já sabe do que se trata e usa o valor correto! Em geral, dentro de métodos Getters, dificilmente vai haver algum conflito de nomes e o this
é opcional, ainda assim é recomendável o seu uso, para facilitar a leitura do código!
Vamos ver um caso onde há conflito agora:
public String setNome(String nome) {
this.nome = nome;
}
Dentro de um método setNome()
, onde recebemos uma String nome
como parâmetro. Só de olhar já percebemos que temos uma variável local, no parâmetro, com o mesmo nome do atributo da classe, isso é o conflito de nomes. Nesse caso precisamos usar a referência this, senão o Java vai entender que estamos nos referenciando à variável local nome
, e o método não vai ter o comportamento desejado.
É importante lembrar, também, que esse conflito só ocorre porque a variável local tem o mesmo nome do atributo, no caso de ser um nome diferente da variável local:
public String setNome(String nomeDiferente) {
nome = nomeDiferente;
}
Também vira opcional o uso do this
, pois não haverá conflitos! Ainda assim, reforço, é uma boa prática utilizar o this sempre que for cabível, pois facilita a leitura e manutenção do código.
Em caso de dúvidas, estou à disposição!
Um grande abraço e bons estudos!