Submarino.com.br




Comparando Objetos em Java

Objectos, Variáveis e Primitivos

Para entender como se comparam objetos em java é necessário entender o modelo de variáveis da linguagem e a diferença entre comparar objetos e comparar o conteudo de variáveis.

Ao comparar podemos estar interessados em comparar os valores da variáveis ou as caracteristicas dos objetos.

Taxionomia de uma variável

Uma variável, em java , é composta por um valor e um tipo. O fato de todas as variáveis terem um tipo torna a plataforma fortemente tipada e por consequência mais segura, pois não ha como, inadevertidamente, asignar um valor de um tipo a uma variável de tipo diferente. Contudo,em alguns casos é possivel explicitamente fazer conversões através de operações de cast.

Ilustração 1:

Em java uma variável pode conter valores ou referências. Um valor pode representar um número ou um valor logico (true, ou false), este tipo de variável chama-se Variável de valor primitivo ou simplesmente Variável primitiva. Uma referência representa um endereço de localização de um objeto. Diz-se que a variável se refere a um objeto e a este tipo de variável chama-se Variável de Referência. Em particular variáveis de referência podem não referir nenhum objeto e, nesse caso, o seu valor é nulo (null) e diz-se que a variável está vazia.

Formas de comparação

Existem várias formas de comparar dois elementos,sejam objetos os conteúdo de variáveis. Cada uma das formas nos fornece uma prespetiva diferente de como esses elementos se relacionam.

  • Equivalência - queremos saber se dois elementos podem ser utilizados no mesmo contexto indestintamente. Se dois elementos são equivalentes, podemos utilizar qualquer um deles.
  • Igualdade - queremos saber se os dois elementos representam o mesmo valor. No caso geral, se eles têm o mesmo estado. Se dois elementos são iguais, não necessáriamente são equivalentes, embora na maioria dos casos isso seja verdade.
  • Identidade - queremos saber se dois elementos são idênticos, ou seja, se são o mesmo objeto. A relação de identidade é a mais forte e resulta nos seguinte corolários:
    • Se dois elementos são idênticos, eles são equivalentes - Se são idênticos são na realidade o mesmo elemento, e um elemento é sempre equivalente a ele próprio.
    • Se dois elementos são idênticos, eles são iguais - Se são idênticos são na realidade o mesmo elemento, e um elemento é sempre igual a ele próprio.
  • Ordem - queremos saber se um elemento é menor, ou maior, que o outro. Isto só é possivel se existir uma relação de ordem entre os elemento. Um caso particular é a relação de ordem entre um elemento e ele próprio. Neste caso o elemento é igual a ele mesmo - não será menor, nem maior, que ele próprio.
  • Categoria - queremos saber se um elemento é de uma certa categoria, da mesma categoria que outro, ou se é de uma categoria compativel.