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

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

Olá pessoal, estou com a seguinte dúvida: A minha classe Conta Poupança estende uma classe Conta. Nessa classe Conta tenho o seguinte método:

public String toString() {
    return "esse objeto é uma conta com saldo R$" + this.saldo;
    }

Então quando realizo um System.out.println(conta), é exibo o retorno do método toString.

O que tenho que fazer para imprimir apenas o valor do saldo? Se eu comentar a classe toString é exibido a codificação do objeto abaixo:

br.com.empresa.banco.conta.ContaPoupaca@3e5d8e63

5 respostas
solução!

Boa tarde Leandro, não entendi bem sua pergunta..

Primeiro, se quiser exibir apenas o valor do saldo, o método deve ser:

public String toString() { return this.saldo; } // caso saldo seja um Objeto String

ou 

public String toString() { return String.valueOf(this.saldo); } // caso saldo seja qualquer coisa diferente de String

Outro detalhe é observar que tipo de objeto você tem, caso seja uma instância de ContaPoupaca, você deve sobrescrever o toString desta classe também.

Caso queira que o valor de ContaPoupaca seja exibido de acordo com o que foi definido na classe pai (Conta) então faça da seguinte maneira:

public String toString() { super.toString()} // chama o toString do pai

Show! Obrigado pela resposta.

Disponha, bom estudo!

Estava revisando o conteúdo e verifiquei que também daria pra fazer através de um laço for, como abaixo:

for (int i = 0; i < contas.size(); i++) { ContaPoupaca cpt = (ContaPoupaca) contas.get(i); System.out.println(cc.getSaldo()); }