Classe de Cartao de credito
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class CartaoDeCredito {
private double limite;
private List<Compras> compras=new ArrayList<>();
private Compras compra;
private double somaTotal;
public double getSomaTotal() {
return somaTotal=compras.stream()
.mapToDouble(Compras::getPreco)
.sum();
}
public double getLimite() {
return limite;
}
public void setLimite(double limite) {
this.limite = limite;
}
public void getCompras() {
compras.stream().sorted(Comparator.comparing(Compras::getPreco).reversed())
.collect(Collectors.toList()).forEach(System.out::println);
System.out.println("Valor total das compras: " + getSomaTotal());
}
public void setCompras(Compras compras) {
this.compra=compras;
if (compras.getPreco()<getLimite()){
this.compras.add(compras) ;}
else {
System.out.println("Saldo insulficiente"+ " \n\nLimite Atual: "+(getLimite()-getSomaTotal()));
}
}}
Classe de compras
public class Compras {
private String nome;
private double preco;
public Compras() {
}
public Compras(String nome, double preco) {
this.nome = nome;
this.preco = preco;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
@Override
public String toString() {
return nome + '\'' +
" preco=" + preco ;
}}
Classe principal
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner entrada=new Scanner(System.in);
CartaoDeCredito cartao1=new CartaoDeCredito();
System.out.println("Digite o limite do cartão");
double limite= entrada.nextDouble();
cartao1.setLimite(limite);
while(true){
System.out.println("Deseja Fazer uma compra? Digite 1 para sim e 2 para não");
int resposta=entrada.nextInt();
entrada.nextLine();
if (resposta==1){
Compras compra=new Compras();
System.out.println("qual o nome do produto");
String nome =entrada.nextLine();
compra.setNome(nome);
System.out.println("Qual o valor do produto");
double preco=entrada.nextDouble();
entrada.nextLine();
compra.setPreco(preco);
cartao1.setCompras(compra);
System.out.println("Compra Realizada");
} else if (resposta == 2) {
System.out.println("Finalizando...");
break;
} else {
System.out.println("Opção inválida. Digite 1 ou 2.");
}
}
}
}
`