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

Metodo não está comparando

Boa tarde!

Estou tentando fazer o exercício 10, mas quando compara cc com cc2 me retorna a frase "objeto nao equivalente"

classe Conta

package br.com.alura.java3.modelos;

import br.com.alura.java3.exception.ValorInvalidoException;

public abstract class Conta {

    protected double saldo;
    private int numero;
    private String nome;

    public Conta() {

    }

    public Conta(int numero, String nome) {
        this.numero = numero;
        this.setNome(nome);
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public double getSaldo() {
        return saldo;
    }

    public void deposita(double valor) {
        if (valor <= 0) {
            throw new ValorInvalidoException(valor);
        }
        this.saldo += valor;
    }

    public void saca(double valor) {
        this.saldo -= valor;
    }

    public abstract void atualiza(double taxa);

    @Override
    public String toString() {
        return "esse objeto é uma conta com saldo R$" + this.saldo;

    }

    @Override
    public boolean equals(Object obj) {
        Conta outra = (Conta) obj;
        return this.numero == outra.numero && this.nome.equals(outra.nome);
    }

}

Esse é o método main

public static void main(String[] args) {


    ContaCorrente cc = new ContaCorrente();
        ContaCorrente cc2 = new ContaCorrente();

        String nome = "A";
        int b = 1000;

        cc.setNome(nome);
        cc2.setNome(nome);

        cc.setNumero(b);
        cc.setNumero(b);

        if (cc == cc2) {
            System.out.println("mesmo objeto");
        }else {
            System.out.println("outro objeto");
        }

        if (cc.equals(cc2)) {
            System.out.println("objeto equivalente");
        }else {
            System.out.println("objeto nao equivalente");
        }

    }

porque cc não é igual a cc2 quando invoco o equals?

1 resposta
solução!

Olá Marcos,

td bom?

Perceba que você não está setando o número da outra conta.

Seu código está duplicado setando duas vezes o número da Conta referenciado pela variável cc.

Entendeu?

Abraços