Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Esta saindo o endereço de memória no console

Boa noite pessoal ! Estou fazendo o passo-a-passo no meu Eclipse, revisei o meu código e quando o executo, ele gera no consolo o nome do pacote onde está a minha classe conta corrente e o endereço da memória. Será que vocês podem me ajudar a descobrir o erro !

Código

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

import java.util.ArrayList;

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

public class Teste {

    public static void main(String[] args) {

        ArrayList lista = new ArrayList();

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

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

          System.out.println(lista.size());
          Conta ref = (Conta) lista.get(0);
          System.out.println(ref.getNumero());

          lista.remove(0);

          System.out.println("Tamanho: " + lista.size());

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

          Conta cc4 = new ContaCorrente(33, 322);
          lista.add(cc4);

          for(int i = 0; i < lista.size(); i++) {
              Object oRef = lista.get(i);
              System.out.println(oRef);
          }

          System.out.println("-------------------------------");

          for(Object o : lista) {
          System.out.println(o);
          }

    }

}

Saída no console

2
11
Tamanho: 1
br.com.bytebank.banco.modelo.ContaCorrente@7852e922
br.com.bytebank.banco.modelo.ContaCorrente@4e25154f
br.com.bytebank.banco.modelo.ContaCorrente@70dea4e
-------------------------------
br.com.bytebank.banco.modelo.ContaCorrente@7852e922
br.com.bytebank.banco.modelo.ContaCorrente@4e25154f
br.com.bytebank.banco.modelo.ContaCorrente@70dea4e
3 respostas
solução!

acredito que você não deu overriding no método toString() então ele está mostrando o hash da conta. Vá na sua classe conta e sobrescreva o método toString().

Converte sua Lista para

 List<Conta> lista = new ArrayList<>(); 

e no seu ForEach imprime do tipo Conta

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

Fala ai pessoal ! Boa Noite, voltei a pegar no curso de Java e estou tentando resolver o problema. Wallacer, me tira uma dúvida, você esta falando para eu fazer um overriding na minha classe conta corrente ou conta ? Imagino que seja na classe conta ( Segue a baixo o meu código da classe conta)

/**
 * Classe que representa a criação do objeto conta 
 * 
 * @author Renato Areas
 * @version 0.1
 */

package br.com.bytebank.banco.modelo;


public abstract class Conta {

    protected double saldo;
    private int agencia;
    private int numero;
    private Cliente titular;
    private static int total = 0;

    /**
     * 
     * @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;
        //this.saldo = 100;
        //System.out.println("Estou criando uma conta " + this.numero);
    }

    /**
     * 
     * @param valor
     */

    public abstract void deposita(double valor);

    /**
     * 
     * @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("Nao pode valor menor igual a 0");
            return;
        }
        this.numero = numero;
    }

    public int getAgencia(){
        return this.agencia;
    }

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

}

Vou colocar aqui abaixo também a minha classe conta corrente ontem.

package br.com.bytebank.banco.modelo;


//new ContaCorrente()
public class ContaCorrente extends Conta implements Tributavel {

    public ContaCorrente(int agencia, int numero) {
        super(agencia, numero);
    }

    @Override
    public void saca(double valor) throws SaldoInsuficienteException {
        double valorASacar = valor + 0.2;
        super.saca(valorASacar);
    }

    @Override
    public void deposita(double valor) {
        super.saldo += valor;
    }

    @Override
    public double getValorImposto() {    
        return super.saldo * 0.01;
    }

}

Sassine, tentei fazer isso que você me falou e importei o pacote List do java util, porém não funcionou =/