Vi que o Eclipse não gera o this.atributo nos getters, porém nos métodos apresentados tem this? Qual é a regra?
Ex.: @Override public int hashCode() { return this.nome.hashCode(); }
Vi que o Eclipse não gera o this.atributo nos getters, porém nos métodos apresentados tem this? Qual é a regra?
Ex.: @Override public int hashCode() { return this.nome.hashCode(); }
Olá Fabio, tudo bem com você?
Na verdade, não precisamos colocar o this em nenhum dos dois casos. Só precisamos declarar explicitamente o this antes de um membro quando estamos recebendo um parâmetro com o mesmo nome. Como tanto no caso dos getters, quanto no caso do hashCode(), está claro que estamos nos referindo a um atributo que pertence ao próprio objeto, não precisamos colocar o this. Ou seja, o Paulo colocou ele apenas para deixar mais claro que nome.hashCode()
se refere ao próprio objeto.
Diferente dos setters que geralmente recebem um parâmetro com o mesmo nome do atributo e que, portanto, precisam do this para que a JVM consiga diferenciar qual é qual:
public void setNome(String nome) {
this.nome = nome;
}
Espero ter ajudado. Qualquer dúvida é só avisar!
Abraços e bons estudos!!
Valeu. Obrigado.