O programa funcionou da maneira que foi pedida mas acho que fiz da maneira mais complicada e confusa possivel haha queria a opiniao de um dos professor sobre o codigo e o que poderia ser melhorado
`public class ControleCartao { String itemComprado;
private String getItemComprado() {
return itemComprado;
}
private int getLimiteCartao() {
return limiteCartao;
}
private static int getValorDoProduto() {
return valorDoProduto;
}
public void totalFatura(){
limiteCartao = this.limiteCartao - this.valorDoProduto;
}
@Override
public String toString() {
return ("\n" + itemComprado + " - " + valorDoProduto);
}
int limiteCartao = 0;
static int valorDoProduto = 0;
} `
public class Main extends ControleCartao {
public static void main(String[] args) {
int operacoes = 4;
List<String> lista = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
ControleCartao controlecartao = new ControleCartao();
System.out.println("Digite o limite do cartão.");
controlecartao.limiteCartao = scanner.nextInt();
while( operacoes != 0 ) {
System.out.println("Digite o item comprado.");
controlecartao.itemComprado = scanner.next();
System.out.println("Digite o valor do produto.");
controlecartao.valorDoProduto = scanner.nextInt();
if (controlecartao.limiteCartao <= controlecartao.valorDoProduto) {
System.out.println("Saldo insuficiente");
break;
} else if (controlecartao.limiteCartao >= controlecartao.valorDoProduto) {
System.out.println("Compra Realizada");
controlecartao.totalFatura();
}
System.out.println("Digite 0 para sair e 1 para continuar comprando");
operacoes = scanner.nextInt();
lista.add(controlecartao.toString());
}
Collections.sort(lista);
System.out.println("\nCompras Realizadas\n*******************\n");
System.out.println(lista.toString());
System.out.println("\nSeu saldo do cartão é: " + controlecartao.limiteCartao);
}
}