Hola Serrano, espero que estés bien.
Cuando crea una nueva referencia cc3
con los mismos parámetros que cc
. Sin embargo, al imprimir cc3
usando lista.contains(cc3)
, no se muestra nada. Esto se debe a que contains
compara las referencias de los objetos en el ArrayList
, no los valores de los parámetros.
En tu caso, aunque cc3
tiene los mismos parámetros que cc
, no se considera igual a cc
porque son referencias diferentes. Por lo tanto, contains
no encuentra una coincidencia y no se imprime nada.
Si quieres que contains
compare los valores de los parámetros en lugar de las referencias, tendrías que sobrescribir el método equals
en la clase CuentaCorriente
. En el método equals
, puedes definir cómo se debe comparar dos objetos de la clase CuentaCorriente
en base a los valores de sus parámetros:
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
CuentaCorriente other = (CuentaCorriente) obj;
return this.numeroAgencia == other.numeroAgencia && this.numeroCuenta == other.numeroCuenta;
}
Con esta implementación del método equals
, contains
comparará los valores de los parámetros numeroAgencia
y numeroCuenta
en lugar de las referencias de los objetos.
Espero que esto aclare tu duda. Si tienes alguna otra pregunta, no dudes en preguntar.
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios