1
resposta

[Projeto] Hora da pratica - Construtores


class produto
import java.util.ArrayList;

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

    @Override
    public String toString() {
        return "Produto [nome = " + nome + ", preço  = R$" + preco + ", na quantidade " + quantidade + "]";

    }
}



class principal

import java.util.ArrayList;

public class Principal  {
    public static void main(String[] args) {
        Produto produtoNovo = new Produto("Produto novo ", 9.70, 4);
        ProdutoPerecivel produtoPerecivel = new ProdutoPerecivel("Carne fresca", 18.65, 2, "2026-03-05");
        ArrayList<Produto> listaDeProdutos = new ArrayList<>();

        Produto produto1 = new Produto("Coca cola", 10.99, 3);
        Produto produto2 = new Produto("Pringles", 14.90, 1);
        Produto produto3 = new Produto("Frango", 8.90, 4);
        Produto produto4 = new Produto("Leite em pó", 17.90,2);


        listaDeProdutos.add(produto1);
        listaDeProdutos.add(produto2);
        listaDeProdutos.add(produto3);
        listaDeProdutos.add(produto4);

        System.out.println("Tamanho da lista de compras: " + listaDeProdutos.size());
        System.out.println("Item número 3 é: " + listaDeProdutos.get(2).getNome() +
                " pelo preço de " + produto2.getPreco());


        System.out.println(produtoNovo);

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


    }
        System.out.println(produtoPerecivel);
    }
}


class produtoPerecivel

public class ProdutoPerecivel extends Produto {

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

    }
}
1 resposta

Oi, Laila! Como vai?

Ficou bem legal como você usou construtores, ArrayList<Produto>, o for-each e sobrescreveu toString() pra imprimir os itens com clareza, além de aplicar herança em ProdutoPerecivel.

Uma dica interessante para o futuro é criar um método para calcular o valor total do produto (preco * quantidade) e, no perecível, validar a data com LocalDate para saber se está vencido.


import java.time.LocalDate;

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 double valorTotal() {
    return preco * quantidade;
  }
}

public class ProdutoPerecivel extends Produto {
  private LocalDate dataValidade;

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

  public boolean estaVencido(LocalDate hoje) {
    return dataValidade.isBefore(hoje);
  }
}

Esse codigo cria valorTotal() para calcular o total do item e estaVencido() para comparar a validade com uma data de referencia, sem precisar fazer conta manual no main.

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