He completado el desafio al final en cuanto al curso de Java: Trabajar con listas y colecciones de datos. Me gustaria obtener feedback acerca del programa que codifique poniendo aprueba mis conocimientos.
package com.aluracursos.desafio.principal;
import com.aluracursos.desafio.models.Compra;
import com.aluracursos.desafio.models.Tarjeta;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static Scanner input = new Scanner(System.in);
public static ArrayList<Compra> listaDeCompras = new ArrayList<>();
public static void main(String[] args) {
menu();
}
private static void menu() {
String descripcion;
double valorCompra;
double balance;
byte op=0;
System.out.print("Digite el limite de la tarjeta: ");
balance = input.nextDouble();
Tarjeta tarjeta = new Tarjeta(balance);
do{
input.nextLine();
System.out.print("Escriba la descripción de la compra: ");
descripcion = input.nextLine();
System.out.print("Digite el valor de la comra: ");
valorCompra = input.nextDouble();
if(valorCompra > tarjeta.getBalance()){
System.out.println("Saldo insuficiente");
finalizarCompra();
System.out.println("\nSaldo disponible: " + tarjeta.getBalance() + "\n");
op = 0;
}else{
tarjeta.setBalance(tarjeta.getBalance()-valorCompra);
listaDeCompras.add(new Compra(descripcion, valorCompra));
System.out.println("Compra realizada!");
System.out.print("Escriba 0 para salir o 1 para continuar: ");
op = input.nextByte();
if (op == 0){
finalizarCompra();
}
}
}while(op==1);
}
private static void finalizarCompra() {
listaDeCompras.sort(Comparator.comparing(Compra::getValor));
System.out.println("*******************************" +
"\nCOMPRAS REALIZADAS:\n");
for (Compra compra : listaDeCompras) {
System.out.println(compra);
}
System.out.println("\n*******************************");
}
}