import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// Criando uma lista de objetos Produto
ArrayList<Produto> listaDeProdutos = new ArrayList<>();
// Adicionando alguns produtos à lista
listaDeProdutos.add(new Produto("Pão", 10.0, 5, "01/01/2025"));
listaDeProdutos.add(new Produto("Aveia", 20.0, 3, "05/02/2025"));
listaDeProdutos.add(new Produto("Carne", 30.0, 8, "10/03/2025"));
// Imprimindo o tamanho da lista
System.out.println("Tamanho da lista de produtos: " + listaDeProdutos.size());
// Recuperando um produto pelo índice e imprimindo
int indice = 1; // Índice do produto a ser recuperado
System.out.println("Produto no índice " + indice + ": " + listaDeProdutos.get(indice));
// Criando um objeto ProdutoPerecivel
ProdutoPerecivel produtoPerecivel = new ProdutoPerecivel("Leite", 2.5, 10, "01/06/2024");
// Imprimindo os valores do produto perecível
System.out.println("Produto Perecível: " + produtoPerecivel);
}
}
class Produto {
private String nome;
private double preco;
private int quantidade;
private String dataVencimento;
// Construtor que aceita parâmetros para inicializar os atributos
public Produto(String nome, double preco, int quantidade, String dataVencimento) {
this.nome = nome;
this.preco = preco;
this.quantidade = quantidade;
this.dataVencimento = dataVencimento;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public String getDataVencimento() {
return dataVencimento;
}
public void setDataVencimento(String dataVencimento) {
this.dataVencimento = dataVencimento;
}
// Método toString para representação textual do objeto
@Override
public String toString() {
return "Produto [nome=" + nome + ", preco=" + preco + ", quantidade=" + quantidade + ", dataVencimento=" + dataVencimento + "]";
}
}
class ProdutoPerecivel extends Produto {
// Construtor que utiliza o construtor da classe mãe para inicializar os atributos herdados
public ProdutoPerecivel(String nome, double preco, int quantidade, String dataVencimento) {
super(nome, preco, quantidade, dataVencimento);
}
// Método toString para representação textual do objeto
@Override
public String toString() {
return "ProdutoPerecivel [nome=" + getNome() + ", preco=" + getPreco() + ", quantidade=" + getQuantidade() + ", dataVencimento=" + getDataVencimento() + "]";
}
}