5
respostas

ArrayList

Olá eu fiz o código da aula 4 "conhecendo ArrayList" e quando compila não mostra o número da conta, agencia, etc. só mostra isso: br.com.banco.modelo.ContaCorrente@6d06d69c br.com.banco.modelo.ContaCorrente@7852e922

package br.com.banco.teste.util;

import java.util.ArrayList;

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

public class teste {

    public static void main (String[]args) {

        ArrayList lista = new ArrayList();

        Conta cc = new ContaCorrente( 45,66);
        lista.add(cc);

        Conta cc1 = new ContaCorrente (123,555);
        lista.add(cc1);

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

        Conta cc4 = new ContaCorrente (123,555);
        lista.add(cc4);

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

//        Object referencia = lista.get(1);
//        
//        System.out.println(referencia(1));

        Conta referencia = (Conta) lista.get(1);
        System.out.println(referencia.getNumero());

        lista.remove(0);

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

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

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


    }

}
5 respostas

Olá tudo bem? O erro pelo que identifiquei esta no primeiro for:

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

Correto:

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

Ou pode ser feito também um foreach segue:

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

Lembrando sempre que irá imprimir o metodo ToString(que precisa ser sobreescrito) dentro da classe conta.

Ele vai imprimir o metodo ToSring dentro da classe conta, se nao foi sobreescrito irá imprimir o metodo ToSring dentro da classe Object.

Fala Jose, tudo bem?

Sua dúvida foi solucionada?

ainda não consegui. mesmo com a ajuda do David. Continua dando erro.

Pode postar o código de sua classe Conta e Conta Corrente por favor?

package br.com.banco.modelo;

public abstract class Conta {

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

public Conta() {

}

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);
}

public abstract void deposita(double valor);//precisa que os filhos que implementem o método

public boolean saca(double valor) {
    if(this.saldo >= valor) {
        this.saldo -= valor;
        return true;
    } else {
        return false;
    }
}

public boolean transfere(double valor, Conta destino) {
    if(this.saca(valor)) {
            destino.deposita(valor);
            return true;
    } else {
            return false;
    }
}

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;
}

@Override
public boolean equals(Object ref) {//para comparar os numeros e agencia das contas iguais em ListEquals

    Conta outra = (Conta)ref; // transforma um objeto Object em Conta com esse "cast"
    if (this.agencia != outra.agencia) {
        return false;
    }
    if (this.numero !=outra.numero) {
        return false;
    }
    else {
        return true;
    }

}

} `Conta Corrente

package br.com.banco.modelo;

//new ContaCorrente() public class ContaCorrente extends Conta implements Tributavel {// "extends" quer dizer que a classe mãe é Conta e "implements" quer dizer que está vinculada com Tributavel

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

public ContaCorrente(int agencia, int numero) {// toda vez que fizer uma conta corrente é OBRIGATORIO colocar agencia e numero senao não aceita
    super(agencia, numero);
}

@Override
    public boolean saca(double valor) {
        double valorASacar = valor + 0.2;
        return super.saca(valorASacar);
    }

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

}

`