import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CartaoCredito {
//Quais os atributos do meu cartão
private String nome;
private double limite;
private double saldo;
private List<Compras> compra; //uma lista para receber as compras q serão feitas.
//Construtor.
public CartaoCredito(double limite) {
this.limite = limite;
this.saldo = limite;
this.compra = new ArrayList<>();
}
public boolean lancaCompra(Compras compra) {
if(this.saldo > compra.getValor()) {
this.saldo -= compra.getValor();
this.compra.add(compra);
return true;
}
return false;
}
//getters & Setters
public String getNome() { return nome;}
public void setNome(String nome) { this.nome = nome;}
public double getSaldo() {return saldo;}
public List<Compras> getCompra() {return compra;}
public void listarCompra() {
Collections.sort(compra);
System.out.println("**********************************");
System.out.println("COMPRAS REALIZADAS: \n");
for (Compras c : compra) {
System.out.println(c.getProduto() + " - " + c.getValor());
}
System.out.println("\n**********************************");
System.out.println("\nSeu saldo do cartão: R$" +saldo);
}
}
public class Compras implements Comparable<Compras>{
private String produto;
private double valor;
public Compras(String produto, double valor) {
this.produto = produto;
this.valor = valor;
}
public String getProduto() {
return produto;
}
public double getValor() {
return valor;
}
@Override
public String toString() {
return "Compra: " +produto+
" - Valor: " +valor;
}
@Override
public int compareTo(Compras outra) {
return Double.compare(this.valor, outra.valor);
}
}
import java.util.Scanner;
public class TesteUsoCartao {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//coleta de informações
System.out.println("------------Cartão de Crédito---------");
System.out.println("Dados do Cartão");
System.out.println("Digite seu nome: ");
String nome = scanner.nextLine();
double limite = 1000.0;
System.out.println("O Limite do seu cartão é: R$" + limite);
CartaoCredito cartao = new CartaoCredito(limite);
cartao.setNome(nome);
int sair = 1;
while (sair != 0) {
System.out.println("Olá " + nome + " , qual produto deseja comprar?");
String descricao = scanner.nextLine();
System.out.println("Digite o valor dessa compra: ");
double valor = scanner.nextDouble();
scanner.nextLine();
Compras novaCompra = new Compras(descricao, valor);
if (cartao.lancaCompra(novaCompra)) {
System.out.println("Compra Realizada!!");
System.out.println("Digite 0 para SAIR ou 1 para Continuar: ");
sair = scanner.nextInt();
scanner.nextLine();
if (sair != 0 && sair != 1) {
System.out.println("⚠️ Opção incorreta! Saindo por segurança.");
sair = 0;
}
} else {
System.out.println("Saldo Insuficiente!");
sair = 0;
}
}
cartao.listarCompra();
scanner.close();
}
}