1
resposta

[Projeto] DESAFIO

CARTÃO DE CRÉDITO

package br.com.meuprojeto.modelos;

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

public class CartaoDeCredito {
private double limite;
private double saldo;
private List<Compra> compras;

public CartaoDeCredito(double limite) {
    this.limite = limite;
    this.saldo = limite;
    this.compras = new ArrayList<>();
}

public boolean lancaCompra(Compra compra) {
    if (this.saldo >= compra.getValor()) {
        this.saldo -= compra.getValor();
        this.compras.add(compra);
        return true;
    }
    return false;
}

public double getSaldo() {
    return saldo;
}

public List<Compra> getCompras() {
    return compras;
}
}

COMPRAS

package br.com.meuprojeto.modelos;

public class Compra implements Comparable<Compra> {
private String descricao;
private double valor;

public Compra(String descricao, double valor) {
    this.descricao =descricao;
    this.valor = valor;
}

public String getDescricao() {
    return descricao;
}

public double getValor() {
    return valor;
}

@Override
public String toString() {
   return descricao + " - " + valor;
}

@Override
public int compareTo(Compra outraCompra) {
    return Double.compare(this.valor, outraCompra.getValor());
}
}

RESULTADO

Digite o limite do cartão: 100000000
Digite a descrição da compra: VESTIDO
Digite o valor da compra: 80000
Compra realizada!
Digite 0 para sair ou 1 para continuar
1
Digite a descrição da compra: SALTO
Digite o valor da compra: 2000
Compra realizada!
Digite 0 para sair ou 1 para continuar
1
Digite a descrição da compra: BOLSA
Digite o valor da compra: 120000
Compra realizada!
Digite 0 para sair ou 1 para continuar
0

COMPRAS REALIZADAS:
SALTO - 2000.0
VESTIDO - 80000.0
BOLSA - 120000.0

Saldo do cartão: 9.9798E7

Process finished with exit code 0

1 resposta

Oi, Giulia! Tudo bem?

Parabéns por concluir e compartilhar a resolução. Seu código está bem estruturado e a lógica está correta. A organização das classes CartaoDeCredito e Compra ficou boa, e o uso de Comparable para ordenar as compras funcionou bem.

Uma observação: o valor 9.9798E7 aparece porque o double pode ser exibido em notação científica para números grandes. Se quiser mostrar o valor por extenso, você pode usar String.format("%.2f", saldo) ou System.out.printf.

No geral, a solução está correta. Continue praticando e testando diferentes cenários.

Bons estudos!

Sucesso

Imagem da comunidade