Por favor não estou entendo o porque sempre retorna True,poderiam me ajudar aonde eu errei, segue as classes abaixo
public class TesteArrayListEquals {
public static void main(String[] args) {
ArrayList<Conta> lista = new ArrayList<Conta>();
Conta cc = new ContaCorrente(10, 11);
Conta cc2 = new ContaCorrente(21, 33);
lista.add(cc);
lista.add(cc2);
boolean existe = lista.contains(cc2); // sempre retornando true mesmo com contas diferentes
System.out.println("Existe? "+ existe);
//foreach
for(Conta co : lista) {
System.out.println(co);
}
}
-------------------------------classe Conta com a subscrita -------------------------- public abstract class Conta {
protected double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total = 0;
public Conta(int agencia, int numero){
Conta.total++;
//System.out.println("O total de contas é " + Conta.total);
this.agencia = agencia;
this.numero = numero;
//this.saldo = 100;
//System.out.println("Estou criando uma conta " + this.numero);
}
public abstract void deposita(double valor);
public void saca(double valor) throws SaldoInsuficienteException{
if(this.saldo < valor) {
throw new SaldoInsuficienteException("Saldo: " + this.saldo + ", Valor: " + valor);
}
this.saldo -= valor;
}
public void transfere(double valor, Conta destino) throws SaldoInsuficienteException{
this.saca(valor);
destino.deposita(valor);
}
public double getSaldo(){
return this.saldo;
}
public int getNumero(){
return this.numero;
}
public void setNumero(int numero){
if(numero <= 0) {
System.out.println("Nao pode valor menor igual a 0");
return;
}
this.numero = numero;
}
public int getAgencia(){
return this.agencia;
}
public void setAgencia(int agencia){
if(agencia <= 0) {
System.out.println("Nao pode valor menor igual a 0");
return;
}
this.agencia = agencia;
}
public void setTitular(Cliente titular){
this.titular = titular;
}
public Cliente getTitular(){
return this.titular;
}
public static int getTotal(){
return Conta.total;
}
//metodo equals subscrito-------- aqui o equals
@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;
}
//metodo toString() subscrito
@Override
public String toString() {
return "Nº" + this.getNumero() + " Ag:"+this.getAgencia();
}