1
resposta

Resolução

Compartilhando minha resolução.

/**
 * 1. Crie uma classe Produto com atributos como nome, preco, e quantidade. Em seguida,
 * crie uma lista de objetos Produto utilizando a classe ArrayList. Adicione alguns produtos,
 * imprima o tamanho da lista e recupere um produto pelo índice.
 * 2. Implemente o método toString() na classe Produto para retornar uma representação em texto do objeto.
 * Em seguida, imprima a lista de produtos utilizando o método System.out.println().
 * 3. Modifique a classe Produto para incluir um construtor que aceite parâmetros para inicializar os atributos.
 * Em seguida, crie objetos Produto utilizando esse novo construtor.
 * 4. Crie uma classe ProdutoPerecivel que herde de Produto. Adicione um atributo dataValidade
 * e um construtor que utilize o construtor da classe mãe (super) para inicializar os atributos herdados.
 * Crie um objeto ProdutoPerecivel e imprima seus valores.
 */

package desafios.desafio02;

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;
    }

    @Override
    public String toString() {
        return """
                ----------|PRODUTO|----------
                Nome: %s
                Preço: R$%.2f
                Quantidade: %d
                """.formatted(nome, preco, quantidade);
    }
}
package desafios.desafio02;

public class ProdutoPerecivel extends Produto {

    private String dataValidade;

    public ProdutoPerecivel(String nome, double preco, int quantidade, String dataValidade) {
        super(nome, preco, quantidade);
        this.dataValidade = dataValidade;
    }

    @Override
    public String toString() {
        return super.toString() + "Validade: " + dataValidade;
    }
}
package desafios.desafio02;

import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        Produto produto1 = new Produto("Celular", 1199.99, 12);
        Produto produto2 = new Produto("Televisão", 670.00, 23);
        Produto produto3 = new Produto("PlayStation 4", 1799.99, 30);
        Produto produto4 = new Produto("Computador", 2999.99, 15);

        ProdutoPerecivel produtoPerecivel =
                new ProdutoPerecivel("Chocolate", 9.99, 20, "10/10/2026");

        ArrayList<Produto> listaDeProdutos = new ArrayList<>();
        listaDeProdutos.add(produto1);
        listaDeProdutos.add(produto2);
        listaDeProdutos.add(produto3);
        listaDeProdutos.add(produto4);
        listaDeProdutos.add(produtoPerecivel);

        System.out.println("A lista tem " + listaDeProdutos.size() + " produtos.");

        for (int i = 0; i < listaDeProdutos.size(); i++) {
            System.out.println(listaDeProdutos.get(i));
        }
    }
}

Beleza?

1 resposta

Olá, Lucas! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de herança para estender funcionalidades da classe Produto, utilizou muito bem o método toString() para exibir os dados de forma organizada e ainda compreendeu a importância de trabalhar com listas (ArrayList) para gerenciar múltiplos objetos.

Uma dica interessante para o futuro é aproveitar o for each para percorrer a lista de forma mais simples e legível. Assim:

for (Produto produto : listaDeProdutos) {
    System.out.println(produto);
}

Isso faz com que o código fique mais enxuto e fácil de manter, sem precisar lidar diretamente com índices.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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