Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

retornando sempre o mesmo valor???

Professor no meu caso ele sempre está retornando que são "iguais" não importa o valor que eu passa pelo construtor ele sempre retorna isso porem eu fiz isso e ele fez oque o exercício queria porem eu acho que isso não é uma boa pratica

olha só o meu código ante e depois que eu manipulei o metodo:

ANTES

package br.com.alura.modelos;

import java.io.PrintStream;

public class TestaConta {

private static PrintStream escreva;

public static void main(String[] args) {

escreva = System.out;

Conta c1 = new ContaCorrente(500); Conta c2 = new ContaCorrente(600);

if(c1.equals(c2)){ escreva.println("São iguais"); }else{ escreva.println("não são iguais"); }

escreva.println(c1.getSaldo()); escreva.println(c2.getSaldo()); }

}

São iguais

500.0

600.0

DEPOIS:

package br.com.alura.modelos;

import java.io.PrintStream;

public class TestaConta {

private static PrintStream escreva;

public static void main(String[] args) {

escreva = System.out;

Conta c1 = new ContaCorrente(500); Conta c2 = new ContaCorrente(600);

if(c1.equals(c2)){ escreva.println("São iguais"); }else{ escreva.println("não são iguais"); }

escreva.println(c1.getSaldo()); escreva.println(c2.getSaldo()); }

}

não são iguais

500.0

600.0

1 resposta
solução!

Guilherme, o exercício pede para que você modifique o método equals comparando se o número de uma conta é igual a outra.

public abstract class Conta {
        private int numero;

        public boolean equals(Object obj) {
            Conta outraConta = (Conta) obj;

            return this.numero == outraConta.numero;
        }
    }

No seu caso, como não sei como você fez, mas pelo visto no seu primeiro exemplo, a comparação está sendo feita pelo número, assim sendo se o os números são iguais retornará o esperado,"São iguais", isto porque na sua regra, está implícito que se houver duas contas com o mesmo número elas serão sim iguais !

No segundo se você modificou para comparar com o saldo, o resultado está também correto, pois os saldos são diferentes(500 e 600).

Má prática ? Não podemos dizer que seja, vai depender do que você irá desenvolver e para que, isto é, sua regra de negócio.