@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.
@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.
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!!!!