c) Método equals()
Este método permite a comparação de dois objetos e, principalmente, se eles são iguais. Por padrão, esse método compara os endereços de memória dos dois objetos, caso sejam iguais ele retorna true, caso contrário, retorna false. Novamente para que esse método seja realmente útil deveremos redefini-lo na nossa classe. O exemplo abaixo apresenta a implementação do método equals() para a classe Retangulo:
public boolean equals(Object o) { if (!(o instanceof Retangulo)) return false ; Retangulo retangulo = (Retangulo) o ; return comprimento.equals(retangulo.comprimento) && largura.equals(retangulo.largura) }
Note que a primeira coisa que fizemos é usar o comando instanceof Retangulo para verificar se argumento é instância da classe Retangulo. Isso também nos garante que o argumento é não nulo. Uma vez que temos certeza que o objeto recebido é instância da classe Retangulo, criamos um objeto do tipo Retangulo para referenciá-lo e podermos acessar seus atributos. Por fim, definimos que consideraremos dois objetos da classe Retangulo iguais se os dois tiverem o mesmo comprimento e a mesma largura. Para isso, pode notar que usamos o método equals() também, mas nesse caso será chamado o método equals() da classe int.