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

Saldo fica como 0,00$

Ao rodar meu codigo não exibi o saldo das duas contas.

package Alura3;

import Alura2.ExcecoesEControleDeErros.Conta;

import java.util.ArrayList;

public class TestaColecoes {
    public static void main(String[]args){
        ArrayList<String> nomes = new ArrayList<String>();
        nomes.add("Mauricio");
        nomes.add("Guilherme");

        System.out.println(nomes.get(0));
        System.out.println(nomes.contains("Guilherme"));

        for (String nome : nomes){
            System.out.println(nome);
        }

        System.out.println("Ordenado!");
        for (String nome : nomes){
            System.out.println(nome);
        }


        ArrayList <Conta> contas = new ArrayList<Conta>();

        Conta c1 = new Conta(1500.0);
        Conta c2 = new Conta(700.0);
        contas.add(c1);
        contas.add(c2);

        for (Conta c : contas){
            System.out.println(c);
        }
    }
}
3 respostas

Oi Jackson, tudo bom?

Compartilha com a gente o código da sua classe Conta?

Aguardo retorno.

Abraço =)

package Alura2.ExcecoesEControleDeErros;
//PEGAR = GET
//MUDAR = SET
public class Conta implements Comparable<Conta>{
    private double saldo;
    private String titular;
    private int agencia;
    protected int numero;
    private int numeroConta;
    private String nome;

    public Conta(double v) {

    }

    public Conta() {

    }

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

    public boolean equals(Object obj){
        Conta outraConta = (Conta) obj;

        return this.numero == outraConta.numero;
    }


    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getNumeroConta() {
        return numeroConta;
    }

    public void setNumeroConta(int numeroConta) {
        this.numeroConta = numeroConta;
    }

    public void saca(double valor) throws Exception {
        if (saldo >= valor) {
            this.saldo -= valor;
        }
        else{
            throw new Exception("Saldo Insuficiente ");
        }
    }

    public void deposita(double valor) {
        if (valor < 0) {
            throw new ValorInvalidoException(valor);
        } else {
            this.saldo += valor - 0.10;
        }
    }

    public double getSaldo() {
        return saldo;
    }

    public String getTitular() {
        return titular;
    }

    public void setTitular(String titular) {
        this.titular = titular;
    }

    public int compareTo(Conta outra){
        return 0;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero){
        this.numero = numero;
    }

}
solução!

Acho que falta atribuir o saldo que você recebeu no construtor da conta:

// aqui a gente recebe um double chamado v e não fazemos nada com ele
public Conta(double v) {

    }

Uma boa prática, também, é dar nomes claros aos nossos atributos e variaveis. Exemplo:

//acredito que esse double seja o saldo que passamos no new Conta(1500.0)
public Conta(double saldo) {
    // pegamos o saldo e atribuimos ao atributo da conta
    this.saldo = saldo;
}

Assim, quando você tentar imprimir a conta, ele encontrará o saldo pois foi atribuido no construtor=)