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

Dúvida no Ex. 3 da Aula 5 - Collections framework

Ola estou com problema na impressao da Collections, esta vindo o endereco fisico do Objeto inves do numero ordenado.

public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{
    public ContaPoupanca(int numero, double limite) {
        super(numero, limite);
        // TODO Auto-generated constructor stub
    }

    public void atualiza(double taxa) {
        this.saldo += this.saldo * taxa * 3;
    }

    public void deposita(double valor) {
        this.saldo += valor - 0.10;
    }

    @Override
    public int compareTo(ContaPoupanca outra) {
        if(this.numero < outra.numero) return -1;
        if(this.numero > outra.numero) return 1;
        return 0;
    }
}
public class TestaOrdenacao {

    public static void main(String[] args) {
        List<ContaPoupanca> contas = new ArrayList<ContaPoupanca>();


        ContaPoupanca cp1 = new ContaPoupanca(1,2000); 
        ContaPoupanca cp2 = new ContaPoupanca(2,3000);
        ContaPoupanca cp3 = new ContaPoupanca(3,5000);


        contas.add(cp1);
        contas.add(cp2);
        contas.add(cp3);

        System.out.println(cp2);

        Collections.sort(contas);
        for(ContaPoupanca conta : contas){
            System.out.println(conta);
        }



    }

}

minha classe ContaPoupanca e minha calsse TestaCollections

Alguem sabe o por que esta imprimindo assim?

Obrigado.

1 resposta
solução!

Ja consegui apenas adicionei para imprimir o numero, dentro do for da maneira que esta no exercicio ele imprimi apenas o endereco fisico.

public static void main(String[] args) {
        List<ContaPoupanca> contas = new ArrayList<ContaPoupanca>();
        Random random = new Random();

        ContaPoupanca cp1 = new ContaPoupanca(0,2000); 
        cp1.setNumero(random.nextInt(1000));
        cp1.deposita(random.nextInt(2000));
        contas.add(cp1);

        ContaPoupanca cp2 = new ContaPoupanca(0,3000);
        cp2.setNumero(random.nextInt(1000));
        cp2.deposita(random.nextInt(2000));
        contas.add(cp2);

        ContaPoupanca cp3 = new ContaPoupanca(0,5000);
        cp3.setNumero(random.nextInt(1000));
        cp3.deposita(random.nextInt(2000));
        contas.add(cp3);


        Collections.sort(contas);

        for(ContaPoupanca conta : contas){
            System.out.println(conta.getNumero());
        }