Olá, há algum erro no meu código, pois sempre retorna diferentes, estou com dificuldade para entender a sintaxe da sobrescrita do método equals, segue:
classe main
package br.com.bank;
import br.com.bank.programa.Conta;
import br.com.bank.programa.ContaCorrente;
public class TesteComparacao {
public static boolean TesteContas(ContaCorrente p, ContaCorrente s) {
System.out.println("TESTE COM == ");
if (p.getId() == s.getId()==true) {
System.out.println("são IDs iguais");
} else {
System.out.println("são IDs diferentes");
}
System.out.println("=== TESTE COM EQUALS");
if (p.equals(s)){
System.out.printf("equivalentes");
return true;
}else {System.out.printf("diferentes");}
return false;
}
public static void main(String[] args) {
ContaCorrente cont = new ContaCorrente();
cont.setId();
ContaCorrente cont2 = new ContaCorrente();
cont.setId();
TesteContas(cont, cont2);
}}
CLASSE CONTA:
package br.com.bank.programa;
import java.util.Scanner;
public abstract class Conta {
int id;
double saldo;
String dono;
String tipo;
double taxa = 0.3;
Scanner scn = new Scanner(System.in);
Scanner scn2 = new Scanner(System.in);
public void deposita() {
System.out.println("DIGITE O VALOR A DEPOSITAR: ");
double valor_deposito = scn.nextDouble();
if (valor_deposito > 0) {
this.saldo += valor_deposito;
} else {
throw new ValorInvalidoException(valor_deposito);
}
}
public void saca() {
System.out.println("DIGITE O VALOR DE SAQUE");
double valor_saque = scn.nextDouble();
this.saldo -= valor_saque;
}
public int getId() {
System.out.println("this.id");
return id;
}
public void setId() {
System.out.println("DIGITE O ID DA CONTA: ");
this.id = scn.nextInt();
}
public double getSaldo() {
System.out.printf(">>> SALDO ATUALIZADO: %.2f \n ", this.saldo);
return saldo;
}
public String getDono() {
return dono;
}
public void setDono() {
System.out.println("DIGITE O DONO: ");
dono = scn2.nextLine();
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
System.out.println("DIGITE O TIPO DE CONTA: ");
this.tipo = scn.nextLine();
}
public void atualizaConta() {
System.out.println("INSIRA O NUMERO DE MESES PARA SIMULAR");
double meses = scn.nextInt();
double simulacao = this.saldo * taxa * meses;
System.out.println(">>>> VALOR SIMULADO: " + simulacao);
}
public String toString() {
String a = "este objeto é uma conta, saldo >>> " + this.saldo;
System.out.printf(a);
return a;
}
@Override
public boolean equals(Object obj) {
Conta outraConta = (Conta) obj;
return this.id == outraConta.id;
}
}