Vai depender da implementacao da classe Empregado. O que tem nela?
N
net_sandro
“equals” é um método de comparação entre objetos, como você tem duas instâncias diferentes, “equals” irá retornar “false” pela implementação default (nao tenho certeza).
A forma correta de utilizar “equals” no seu projeto seria sobrescrever esse método na sua classe “Empregado” para comparar seus objetos atributo a atributo, e retornar verdadeiro se duas instâncias diferentes possuem atributos iguais.
Lembre-se de quando sobrescrever equals() sobrescrever também hashCode(). Dê uma olhada neste texto.
Grato,
N
net_sandro
Excelente texto Rafael, boa dica.
L
lestat25sp_
Então mesmo sendo a mesma classe e tendo os mesmos valores para suas variáveis de instância , o equals retorna false…?
Resumindo…nesse caso quando o equals retornaria true?
Rafael_Afonso
Quem decide isso é você. Você pode compara os atributos de sua classe um por um (como o net_sandro demonstrou em seu primeiro post), pode comparar apenas os nomes ou apenas verificar se os objetos são iguais:
Você, como programador, deve decidir quando dois objetos serão “iguais”.
Grato,
N
net_sandro
Como eu falei, e o Rafael completou, o “equals” é somente um método de comparação “igualdade”, você define o seu critério de igualdade entre seus objetos. Igualdade é um critério conceitual.
Em geral, o critério que se deveria identificar dois objetos como iguais seria: todos os atributos iguais. Mas, isso é uma visão genérica. Você pode ter uma visão conceitualmente diferente.
Se para o seu código, duas instâncias de objetos que possuem um único atributo X iguais devem ser interpretados como “objetos iguais”, então, você implementa o seu “equals” para que atenda a esse requisito testando apenas o atributo X das duas igualdades.