Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Não entendi o funcionamento desse código...

@Override
    public boolean equals(Object obj) {
        Aluno outroAluno = (Aluno) obj;
        return this.nome.equals(outroAluno);
    }

Gostaria de mais detalhes sobre esse trecho de código. Obrigado.

4 respostas
solução!

Fala ai Fernando, tudo bem?

Bom vamos la, geralmente quando realizamos comparações entre objetos, o Java realiza a comparação de suas referências. Vamos ao exemplo:

Pessoa matheus = new Pessoa("Matheus");
Pessoa matheus2 = new Pessoa("Matheus");

System.out.println(matheus.equals(matheus2)); // nesse caro iria imprimir false

Porque o resultado seria false? Porque o Java esta realizando a comparação das referências dos objetos, ou seja, seus endereços de memória que estão armazenados.

Agora quando você sobrescreveu o método equals, você ensinou para o objeto como ele deve ser comparado a outro, no seu caso, deve ser comparado pelo nome.

Então se realizarmos o código novamente a impressão seria true, porque Matheus é igual a Matheus.

Espero ter ajudado.

Boa noite Matheus,

cara, muito obrigado, da forma que você explicou ficou bem mais claro agora.

Agradeço muito a sua ajuda, grande abraço e fica com Deus.

De nada Fernando, sempre que precisar estaremos por aqui.

Se sua dúvida foi resolvida, marque o tópico como solucionado.

Abraçooos

Muito bem!!!!