// Fiz algumas mudanças no código de acordo com o o meu entender import java.util.ArrayList; import java.util.List;
public class CartaoDeCredito { private double limite; private double saldo; private List compras;
public double getLimite() {
return limite;
}
public double getSaldo() {
return saldo;
}
public List<Compra> getCompras() {
return 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);
System.out.println("Compra Realizada com Sucesso!!!");
return true;
}
System.out.println("Saldo Insuficiente!!!");
//System.exit(0);
return false;
}
}
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 "Compra: {" +
"descricao=' " + descricao + '\'' +
", valor= " + valor +
'}';
}
@Override
public int compareTo(Compra outraCompra) {
return Double.valueOf(this.valor).compareTo(Double.valueOf(outraCompra.valor));
}
}
import java.util.Collections;
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner leitura = new Scanner(System.in); System.out.println("Digite limite do seu cartão: "); double limite = leitura.nextDouble(); CartaoDeCredito cartao = new CartaoDeCredito(limite);
int sair = 1;
while (sair != 0){
System.out.println("Digite descrição da compra: ");
String descrcao = leitura.next();
System.out.println("Digite valor da compra: ");;
double valor = leitura.nextDouble();
Compra compra = new Compra(descrcao, valor);
boolean compraRealizada = cartao.lancaCompra(compra);
if (compraRealizada) {
//System.out.println("Compra realizada com sucesso");
System.out.println("Digite 0 pra sair ou 1 pra continuar");
sair = leitura.nextInt();
} else{
//System.out.println("Saldo Insuficiente");
sair = 0;
}
}
System.out.println( "*************************");
System.out.println( "Histrorico de Compras");
Collections.sort(cartao.getCompras());
for (Compra c : cartao.getCompras()) {
System.out.println(c.getDescricao() + " - " + c.getValor());
}
System.out.println( "*************************");
System.out.println("Saldo em Cartão: " + cartao.getSaldo());
}
}