Comparação de objetos

Para as três variáveis apresentadas nos exemplos de manipulação de objetos, a expressão

   nome == outroNome
    
resulta true, pois as duas referências são iguais. No entanto,
   nome == outraString
    
ou
   outroNome == outraString
    
resulta false mesmo que os objetos tenham o mesmo conteúdo, pois as duas referências comparadas são distintas. Para efetivamente comparar o conteúdo de objetos, o método equals() deve ser utilizado. Assim, as expressões
   nome.equals(outroNome)
   outroNome.equals(nome)
   nome.equals(outraString)
   outraString.equals(nome)
   outroNome.equals(outraString)
   outraString.equals(outroNome)
    
resultam todas true, pois comparam efetivamente os conteúdos dos objetos.

Métodos como clone() e equals() estão definidos para todos objetos, pois são definidos na classe Object. Esse exemplo ilustra como esses métodos podem ser utilizados.


Ivan L. M. Ricarte
Last modified: Tue Jun 4 15:27:01 BRT 2002