Escrevi um código que a professora jaque passou, é sobre um sistema de cartão de credito. Eu fiz sozinho todo o código tentando implementar o máximo de conceitos que aprendi sobre POO. E o código ficou assim:
public class Aux {
private double valor;
private String descricao;
public Aux(String descricao, double valor) {
this.descricao = descricao;
this.valor = valor;
}
public double getValor() {
return valor;
}
//Polimorfismo para que apareça a mensagem desejada, para isso foi necessario mudar o metodo to string
@Override
public String toString() {
return descricao + ": R$" + valor + System.lineSeparator();
}
}
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class Lista {
private List<Aux> historico_de_compras = new ArrayList<>();
public void setadiciona(String descricao, double valor){
historico_de_compras.add(new Aux(descricao, valor));
}
public void ordena() {
historico_de_compras.sort(Comparator.comparing(Aux::getValor));
}
public List<Aux> getHistorico_de_compras() {
return historico_de_compras;
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
double saldo = 0;
int i = 0;
int contador = 0;
Lista lista = new Lista();
Scanner escreva = new Scanner(System.in);
System.out.println("Digite o limite do seu cartão");
double saldoDoCartao = escreva.nextDouble();
while (i == 0) {
System.out.println("Digite 0 para realizar uma compra ou digite 1 para sair");
i = escreva.nextInt();
if (i != 0 && i != 1) {
System.out.println("Digite um número válido");
i = 0;
} else if (i == 0 ) {
System.out.print("Digite o nome do produto");
escreva.nextLine();
String produto = escreva.nextLine();
System.out.println("Digite o preço do produto");
double preco = escreva.nextInt();
if (preco > saldoDoCartao) {
System.out.println("Saldo insuficiente");
i = 1;
} else {
saldoDoCartao = saldoDoCartao - preco;
lista.setadiciona(produto, preco);
contador ++;
}
}
}
if (contador == 0) {
System.out.println("nenhuma compra feita");
}else {
System.out.println("lista de produtos comprados");
lista.ordena();
for (int j = 0; j < contador; j++) {
System.out.println(lista.getHistorico_de_compras().get(j));
}
}
}
}
Executei o código e funcionou normalmente. Só que depois que eu consegui concluir esse desafio eu fui ver como a professora fez e vi que o meu ficou muito diferente. A minha dúvida é se o código que escrevi pode ser considerado um código bem escrito. Se houver algo que eu possa melhorar no código eu ficaria muito contente se compartilha-se comigo, desde já agradeço.