Com relação a sintaxe da segunda linha, por que (Conta) está entre parenteses?
public boolean equals(Object obj) {
Conta outraConta = (Conta) obj;
return this.numero == outraConta.numero;
}
Com relação a sintaxe da segunda linha, por que (Conta) está entre parenteses?
public boolean equals(Object obj) {
Conta outraConta = (Conta) obj;
return this.numero == outraConta.numero;
}
Oi Rogério, tudo bem ?
Dá uma olhadinha no tipo do objeto que o método equals recebe. É do tipo Object
.
Para podermos verificar se o objeto realmente é igual, precisaremos validar alguns atributos dele, contudo a classe Object
, que estamos recebendo não possui nenhum desses atributos, mas sabemos que a comparação será feita sempre entre duas contas, portanto estamos falando para a JVM que o Object
que ela recebe é um objeto do tipo Conta
, então usamos o recurso chamado Cast para fazer isso, que serve para alertar a JVM que garantimos que é o objeto mais genérico é do tipo que estamos querendo, ou seja um mais específico.
Espero ter ajudo.
Abraços