Aproveitei o exercício para treinar algumas coisas e aprender outras, como o uso do LocalDate e seus métodos. Criei um método que verifica se o produto está vencido.
public class Produto {
private String nome;
private double preco;
private int quantidade;
public Produto(String nome, double preco, int quantidade) {
this.nome = nome;
this.preco = preco;
this.quantidade = quantidade;
}
//...métodos Getters e Setters...
@Override
public String toString() {
return "Produto: " + nome + "\nPreco: " + preco +
"\nQuantidade em estoque: " + quantidade;
}
}
public class ProdutoPerecivel extends Produto{
LocalDate dataValidade;
public ProdutoPerecivel(String nome, double preco, int quantidade, LocalDate dataValidade) {
super(nome, preco, quantidade);
this.dataValidade = dataValidade;
}
public LocalDate getDataValidade() {
return dataValidade;
}
public void setDataValidade(LocalDate dataValidade) {
this.dataValidade = dataValidade;
}
@Override
public String toString() {
return super.toString()+ "\nData de Validade: " + dataValidade+"\n"+verificaValidade();
}
public String verificaValidade(){
boolean vencido = false;
if(dataValidade.isBefore(LocalDate.now())){
vencido = true;
}
return vencido ? "PRODUTO VENCIDO" : "";
}
}
public class Aplicacao {
public static void main(String[] args) {
ArrayList<ProdutoPerecivel> perecivelArrayList = new ArrayList<>(5);
ProdutoPerecivel yogurt = new ProdutoPerecivel("Yogurt",5.50,6, LocalDate.of(2024,10,17));
ProdutoPerecivel manteiga = new ProdutoPerecivel("Manteiga",24.90,7, LocalDate.of(2024,11,28));
ProdutoPerecivel requeijao = new ProdutoPerecivel("Requeijão",13.70,3, LocalDate.of(2024,12,15));
ProdutoPerecivel queijo= new ProdutoPerecivel("Queijo",13.00,9, LocalDate.of(2024,9,6));
ProdutoPerecivel leite = new ProdutoPerecivel("Leite",5.50,20, LocalDate.of(2024,9,17));
perecivelArrayList.add(yogurt);
perecivelArrayList.add(manteiga);
perecivelArrayList.add(requeijao);
perecivelArrayList.add(queijo);
perecivelArrayList.add(leite);
for (ProdutoPerecivel produto : perecivelArrayList) {
System.out.println(produto.toString() + "\n-------------");
}
}
}