Postando o meu projeto.
Class Cartao
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CartaoCredito {
private double saldo;
private List<Compra> compras;
public CartaoCredito(double saldo) {
this.saldo = saldo;
this.compras = new ArrayList<Compra>();
}
public double getSaldo() {
return saldo;
}
public List<Compra> getCompras() {
return compras;
}
public boolean retornaCompra(Compra compra){
if(this.saldo < compra.getValor()){
return false;
}else {
this.saldo -= compra.getValor();
this.compras.add(compra);
return true;
}
}
public void adicionando(){
this.compras.sort(Comparator.comparing(Compra::getValor));
this.compras.forEach(System.out::println);
}
}
Class Compra
public class 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 "Descriçao: "+this.descricao+" Valor: "+this.valor;
}
}
Class Principal
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner leitura = new Scanner(System.in);
int entrada = 0;
System.out.println("Limite de credito ?");
double saldo = leitura.nextDouble();
CartaoCredito cartao = new CartaoCredito(saldo);
while (entrada != -1){
System.out.println("#######################################");
System.out.println("#### 1- adicionar produtos 2- sair ####");
System.out.println("#######################################");
entrada = leitura.nextInt();
if(entrada == 1){
System.out.println("Nome do produto ?");
String nome = leitura.next();
System.out.println("Valor do produto ?");
double valor = leitura.nextDouble();
Compra compras = new Compra(nome, valor);
boolean retorno = cartao.retornaCompra(compras);
if(retorno == false){
System.out.println("saldo insuficiente");
}else {
cartao.adicionando();
}
}else if(entrada == 2){
System.out.println("##################################");
System.out.println("###### Saindo do sistema #########");
System.out.println("##################################");
entrada = -1;
}
}
}
}