Gostaria de fazer uma contribuição/sugestão relacionada a sobrescrita do método equals, se deixarmos como está na aula "O método equals", pode ocorrer a exceção java.lang.ClassCastException caso o método seja utilizado com outro objeto que não é uma Conta.
Como está:
@Override
public boolean equals(Object ref) {
Conta outra = (Conta) ref;
if (this.agencia != outra.agencia) {
return false;
}
if (this.numero != outra.numero) {
return false;
}
return true;
}Sugestão:
@Override
public boolean equals(Object ref) {
if (!(ref instanceof Conta)) {
return false;
}
Conta outra = (Conta) ref;
if (this.agencia != outra.agencia) {
return false;
}
if (this.numero != outra.numero) {
return false;
}
return true;
}Isso poderia ser um tópico antes dos exercícios relacionados ao equals.