Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Desafio: hora da prática | Lista de Produtos

CLASSE PRODUTO (MÃE)

/// 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.
/// 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().
/// 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.
/// 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 br.com.desafios.alura.GabrielHolanda.Produto.modelos;
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;
    }

    public int getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(int quantidade) {
        this.quantidade = quantidade;
    }

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

    @Override
    public String toString() {
        return System.lineSeparator()+ this.getNome()+ System.lineSeparator() +" Preço: "+this.getPreco()+ System.lineSeparator() + " Quantidade: "+this.getQuantidade();
    }
}

CLASSE PRODUTO PERECÍVEL (FILHA)

package br.com.desafios.alura.GabrielHolanda.Produto.modelos;

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()+System.lineSeparator()+" Data de Validade: "+this.dataValidade;
    }
}

main

ProdutoPerecivel leite_em_po = new ProdutoPerecivel("Leite em Pó", 5.25,3, "20/10/2020");
        Produto cuscuz = new Produto("Cuscuz",2.5, 4);
        Produto bandeja_de_ovos = new Produto("Bandeja de ovos", 5,10);
        var listaDeProdutos = new   ArrayList<>();
        listaDeProdutos.add(cuscuz);
        listaDeProdutos.add(leite_em_po);
        listaDeProdutos.add(bandeja_de_ovos);
        System.out.println("Itens na lista de compras: "+listaDeProdutos.size());
        System.out.println("Dados do primeiro item na lista "+listaDeProdutos.getFirst());
        System.out.println(leite_em_po);
1 resposta
solução!

Olá, Gabriel! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de herança para estender a classe Produto, utilizou muito bem o construtor com parâmetros para inicializar os atributos e ainda compreendeu a importância do método toString() para representar os objetos de forma legível.

Uma dica interessante para o futuro é tipar a lista de produtos com generics, garantindo maior segurança e clareza no código. Assim:

ArrayList<Produto> listaDeProdutos = new ArrayList<>();

Isso faz com que a lista aceite apenas objetos do tipo Produto (ou suas subclasses), evitando erros e tornando o código mais robusto.

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

Abraço e bons estudos!

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