package mySearches.Equals;
public class MyApp {
public static void main(String[] args) {
int a = 10;
int b = 10;
Pessoa p1 = new Pessoa("10000", "Leo");
Pessoa p2 = new Pessoa("10000", "Leo");
System.out.println(p1 == p2);
// O resultado é false;
}
}
// O resultado é false;
Embora eles tenham atributos com valores iguais, eles estão em locais diferentes na memória! Por isso quando utilizamos uma comaparação "==" retorna falso, pois eles estão em endereços diferentes! Por isso o resultado dá falso.
Porém temos a opção de fazer a comparação entre objetos usando o método Equals()
O método Equals() é um método que existe na classe OBJECT - ou seja todas classes herdam ele por ser filhas dessa classe OBJECT.
Para implementar esse método, eu teria que sobrescrever esse método na classe Pessoa
Na classe pessoa:
// ...
@Override
public boolean equals(Object obj) {
// Aqui acontece o Down Casting, ou seja, a classe Object 'desce' e
// eu transformo ela em pessoa
Pessoa p = (Pessoa) obj;
return (this.cpf == p.cpf) && (this.nome == p.nome);
}
No programa principal:
// ...
public static void main(String[] args) {
int a = 10;
int b = 10;
Pessoa p1 = new Pessoa("10000", "Leo");
Pessoa p2 = new Pessoa("10000", "Leo");
System.out.println(p1.equals(p2));
// retorna true
}
Aplicando o método Equals(), eu consigo implementar esse princípio de igualdade e utilizar os atributos dos objetos para comparar se são iguaais.
Video about Equals()
https://www.youtube.com/watch?v=yTs_Oj28rsA
Embora eles tenham atributos com valores iguais, eles estão em locais diferentes na memória! Por isso quando utilizamos uma comaparação "==" retorna falso, pois eles estão em endereços diferentes! Por isso o resultado dá falso.
Porém temos a opção de fazer a comparação entre objetos usando o método Equals()
O método
Equals()
é um método que existe na classe OBJECT - ou seja todas classes herdam ele por ser filhas dessa classe OBJECT.Para implementar esse método, eu teria que sobrescrever esse método na classe Pessoa
Na classe pessoa:
No programa principal:
Aplicando o método Equals(), eu consigo implementar esse princípio de igualdade e utilizar os atributos dos objetos para comparar se são iguaais.