4
respostas

[Bug] Java e java.util: Coleções, Wrappers e Lambda expressions aula de Equals

Já existe? true

br.com.bytebank.banco.modelo.ContaCorrente@51016012 br.com.bytebank.banco.modelo.ContaCorrente@29444d75 br.com.bytebank.banco.modelo.ContaCorrente@2280cdaccorreto package br.com.bytebank.banco.teste.util;

import java.util.ArrayList;

import br.com.bytebank.banco.modelo.Conta; import br.com.bytebank.banco.modelo.ContaCorrente; import java.util.ArrayList;

public class TesteArrayListEquals {

public static void main(String[] args) {

//Generics
ArrayList<Conta> lista = new ArrayList<Conta>();

Conta cc = new ContaCorrente(22, 11);
lista.add(cc);

Conta cc2 = new ContaCorrente(22, 22);
lista.add(cc2);

 Conta cc3 = new ContaCorrente(22, 22);
lista.add(cc3);

boolean existe = lista.contains(cc3);

System.out.println("Já existe? " + existe);


for(Conta conta : lista) {
        System.out.println(conta);
}

} }

4 respostas

os codigos estao iguais mais a saida diferente

package br.com.bytebank.banco.teste.util;

import br.com.bytebank.banco.modelo.Conta; import br.com.bytebank.banco.modelo.ContaCorrente;

public class TesteArrayListEquals {

public static void main(String[] args) {
    Conta cc1 = new ContaCorrente(22, 11);
    Conta cc2 = new ContaCorrente(22, 22);

    boolean igual = cc1.ehIgual(cc2); //naão reconhece ehIgual
    System.out.println(igual);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

package br.com.bytebank.banco.modelo;

/**
 * 
 * Classe representa a moldura de uma conta
 * 
 * @author Alex Resende Machado
 *
 */
public abstract class Conta {
    protected double saldo;
    private int agencia;
    private int numero;
    private Cliente titular;
    private static int total;

    /**
     * Construtor para inicializar o objeto a partir da agencia e numero.
     * 
     * @param agencia
     * @param numero
     */

    public Conta(int agencia, int numero) {
        Conta.total++;
        // System.out.println("o total de contas é " + Conta.total);
        this.agencia = agencia;
        this.numero = numero;
        // System.out.println("estou criando uma conta " + this.numero);

    }

    public abstract void deposita(double valor);

    /**
     * Valor prescisa ser maior do que o saldo.
     * 
     * @param valor
     * @throws SaldoInsuficienteException
     */

    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("não pode valor menor ou igual a zero");
            return;
        }
        this.numero = numero;
    }

    public int getAgencia() {

        return this.agencia;
    }

    public void setAgencia(int agencia) {
        if (agencia <= 0) {
            System.out.println("não pode valor menor ou igual a zero");
            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;
    }

    public boolean ehIgual(Conta outra) {

        if (this.agencia != outra.agencia) {
            return false;
        }

        if (this.numero != outra.numero) {
            return false;
        }

        return true;
    }

    @Override
    public String toString() {
        return "Numero:  " + this.numero + ", Agencia: " + this.agencia;
    }
}

Oi Alex! Tudo bem?

Sua saída está diferente da do professor porque você adicionou a conta cc3 à lista de contas, e o professor não. Dessa forma, a saída de programa retorna true no seu caso.

Quanto ao método ehIgual(), parece estar tudo ok, então realmente não sei o que aconteceu. Copia e cola a mensagem de erro aqui pra eu dar uma olhada, por favor.

Espero ter ajudado! Abraços e bons estudos!