tengo una duda es que el código que hice yo por mi cuenta tiene varias diferencias con el de la clase (consolidando conocimientos Java: trabajar con listas y coleccionas de datos
package com.aluracompras.principal;
import com.aluracompras.modelos.Producto;
import com.aluracompras.modelos.TarjetaDeCompras;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
List<Producto> listaDeProductos = new ArrayList<>();
int seguirComprando = 1;
System.out.println("cual es tu saldo:");
TarjetaDeCompras misaldo = new TarjetaDeCompras(teclado.nextDouble());
System.out.println(misaldo.getSaldo());
teclado.nextLine();
while (seguirComprando != 0 ) {
switch (seguirComprando) {
case 1:
System.out.println("Descripción del producto:");
String descripcion = teclado.nextLine();
System.out.println("Precio del producto:");
double precio = teclado.nextDouble();
teclado.nextLine();
listaDeProductos.add(new Producto(descripcion, precio));
double precioDelUltimoProducto = listaDeProductos.get(listaDeProductos.size()-1).getPrecio();
if((misaldo.getSaldo() - precioDelUltimoProducto) <= 0){
seguirComprando = 2;
System.out.println("No se pudo realizar la compra");
}else {
misaldo.restarSaldo(listaDeProductos);
System.out.println("Compra realizada con exito");
System.out.println("¿Desea seguir comprando? (1: sí, 2: no)");
seguirComprando = teclado.nextInt();
teclado.nextLine();
}
break;
case 2:
for (Producto item : listaDeProductos) {
System.out.println(item.getDescripcion() + " " + item.getPrecio() + "$");
}
System.out.println("Su saldo actual es: " + misaldo.getSaldo());
seguirComprando = 0;
break;
default:
break;
}
}
}
}
package com.aluracompras.modelos;
import com.aluracompras.principal.Principal;
import java.util.List;
public class Producto extends Principal {
private double precio;
private String descripcion;
public Producto(String descripcion, double precio) {
this.descripcion = descripcion;
this.precio = precio;
}
public double getPrecio() {
return precio;
}
public void setPrecio(double precio) {
this.precio = precio;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
}
package com.aluracompras.modelos;
import com.aluracompras.principal.Principal;
import java.util.List;
import java.util.Scanner;
public class TarjetaDeCompras extends Principal {
Scanner teclado = new Scanner(System.in);
private double saldo;
public TarjetaDeCompras(double saldoInicial) {
this.saldo = saldoInicial;
}
public double getSaldo() {
return saldo;
}
public void restarSaldo(List<Producto> productos) {
Producto ultimoProducto = productos.get(productos.size() - 1);
this.saldo -= ultimoProducto.getPrecio();
}
}
nose que opinan de mi codigo, que puede mejorar