12.07.2015 Views

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

135 OBJECTO operador “==”, aplicado à variáveis não primitivas, verifica se as referências armazenadas nessasvariáveis apontam para o mesmo objeto na memória. Esse operador não compara o conteúdodos objetos correspon<strong>de</strong>ntes às referências armazenadas nas variáveis submetidas à comparação.Para comparar o conteúdo <strong>de</strong> objetos, é necessário utilizar métodos. Po<strong>de</strong>mos implementar ummétodo <strong>de</strong> comparação na classe Conta.1 class Conta {2 private int numero ;3 private double saldo ;45 public boolean compara ( Conta outra ) {6 return this . numero == outra . numero ;7 }89 // GETTERS E SETTERS10 }Código Java 15.14: Conta.javaA utilização do método compara() seria mais ou menos assim:1 Conta c1 = ...2 Conta c2 = ...34 System . out . println (c1. compara (c2));Código Java 15.15: Comparando com compara()Contudo, na classe Object, já existe um método com o mesmo propósito. O método ao qual nosreferimos é o equals(). A implementação padrão do método equals() na classe Object <strong>de</strong>lega acomparação ao operador “==”. Dessa forma, o conteúdo dos objetos não é comparado. Po<strong>de</strong>mosrescrever o método equals() para alterar esse comportamento e passar a consi<strong>de</strong>rar o conteúdo dosobjetos na comparação.1 class Conta {2 private int numero ;3 private double saldo ;45 public boolean equals ( Object obj ) {6 Conta outra = ( Conta ) obj ;7 return this . numero == outra . numero ;8 }910 // GETTERS E SETTERS11 }Código Java 15.16: Conta.javaPorém, a reescrita do método equals() <strong>de</strong>ve respeitar diversas regras <strong>de</strong>finidas na documentaçãoda classe Object(http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html).Para não infringir nenhuma das regras <strong>de</strong> reescrita do método equals(), po<strong>de</strong>mos utilizar recursosdo eclipse para gerar esse método automaticamente.www.<strong>k19</strong>.com.br 135

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!