1
resposta

Desafio: hora da prática Construindo Objetos

import java.util.ArrayList;

public class Produto {
    private String nome;
    private double preco;
    private int quantidade;

    // Construtor
    public Produto(String nome, double preco, int quantidade) {
        this.nome = nome;
        this.preco = preco;
        this.quantidade = quantidade;
    }

    // Getters (opcional)
    public String getNome() {
        return nome;
    }

    public double getPreco() {
        return preco;
    }

    public int getQuantidade() {
        return quantidade;
    }

    // toString
    @Override
    public String toString() {
        return "Produto{" +
                "nome='" + nome + '\'' +
                ", preco=" + preco +
                ", quantidade=" + quantidade +
                '}';
    }
}


public class ProdutoPerecivel extends Produto {
    private String dataValidade;

    public ProdutoPerecivel(String nome, double preco, int quantidade, String dataValidade) {
        super(nome, preco, quantidade); // chama o construtor da superclasse
        this.dataValidade = dataValidade;
    }

    @Override
    public String toString() {
        return super.toString() + ", data de validade='" + dataValidade + "'";
    }
}


import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {

        // Criando produtos com o construtor
        Produto p1 = new Produto("Arroz", 19.99, 10);
        Produto p2 = new Produto("Feijão", 12.50, 5);
        Produto p3 = new Produto("Macarrão", 7.80, 20);

        // Lista de produtos
        ArrayList<Produto> produtos = new ArrayList<>();
        produtos.add(p1);
        produtos.add(p2);
        produtos.add(p3);

        // Tamanho da lista
        System.out.println("Tamanho da lista: " + produtos.size());

        // Recuperando produto por índice
        Produto produtoRecuperado = produtos.get(1); // Feijão
        System.out.println("Produto recuperado: " + produtoRecuperado);

        // Imprimindo a lista
        System.out.println("Lista completa de produtos:");
        for (Produto produto : produtos) {
            System.out.println(produto);
        }

        // Produto perecível
        ProdutoPerecivel leite = new ProdutoPerecivel("Leite", 5.99, 15, "10/05/2025");
        System.out.println("Produto perecível criado:");
        System.out.println(leite);
    }
}

Saída

Tamanho da lista: 3 Produto recuperado: Produto{nome='Feijão', preco=12.5, quantidade=5} Lista completa de produtos: Produto{nome='Arroz', preco=19.99, quantidade=10} Produto{nome='Feijão', preco=12.5, quantidade=5} Produto{nome='Macarrão', preco=7.8, quantidade=20} Produto perecível criado: Produto{nome='Leite', preco=5.99, quantidade=15}, data de validade='10/05/2025'

1 resposta

Oi, Gabrielly! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Sua organização e uso de herança com a classe ProdutoPerecivel ficou muito clara. O uso do super no construtor também mostra domínio da lógica de reaproveitamento de código entre as classes.

Uma dica interessante para o futuro é usar o método addAll() quando quiser adicionar vários elementos de uma vez à lista. Veja este exemplo:


ArrayList<Produto> novosProdutos = new ArrayList<>();
novosProdutos.add(new Produto("Açúcar", 4.50, 12));
novosProdutos.add(new Produto("Sal", 3.20, 8));

produtos.addAll(novosProdutos);

Esse código adiciona todos os elementos da lista novosProdutos à lista produtos de uma vez, facilitando a manutenção do código.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!