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

Erro no exercicio 3

Boa tarde. Eu estava fazendo o exercício que ele pede para ordenar as contas, mas na hora ele não imprime o saldo, mas sim isso

tey.ContaPoupanca@15db9742
tey.ContaPoupanca@6d06d69c
tey.ContaPoupanca@7852e922

O que eu teria que mudar para que ele comece a imprimir o saldo das contas?

package tey;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

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

        c1.deposita(500);
        c2.deposita(1000);
        c3.deposita(2000);

        contas.add(c1);
        contas.add(c2);
        contas.add(c3);

        Collections.sort(contas);

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

public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{
     public void atualiza(double taxa){
          this.saldo += (this.saldo * taxa ) * 3;
         }

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

         }

        public int compareTo(ContaPoupanca outro) {
            if (this.saldo > outro.saldo){
                return -1;
            }
            if (this.saldo < outro.saldo){
                return 1;
            }
            return 0;
        }
}
package tey;

public abstract class Conta {
     protected double saldo;
     protected int numero;

     public void setSaldo(double saldo){
      this.saldo = saldo;
     }

     public double getSaldo(){
      return this.saldo;
     }

     public void deposita(double deposita){
      this.saldo += deposita;

     }

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

     }

     public int getNumero(){
         return this.numero;
     }

     public abstract void atualiza(double taxa);
}
1 resposta
solução!

Ola Vinicius Azevedo , isso acontece por você estar imprimindo o objeto conta, portanto será exibido valor do objeto na memória. Para que possa ser exibido o valor que precisa, você pode fazer override do método toString na sua classe Conta ou implementar algo como conta.getSaldo() em sua classe Conta.

Abraços

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software