Para as três variáveis apresentadas nos exemplos de manipulação de objetos, a expressão
nome == outroNomeresulta
true
, pois as duas referências são iguais. No
entanto,
nome == outraStringou
outroNome == outraStringresulta
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.