Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

[Projeto] Desafio

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 + '\'' +
                ", preco=" + preco +
                ", quantidade=" + quantidade +
                '}';
    }
}
import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        var produto = new Produto("Mouse ", 1.000,002);
        var produto1 = new Produto("Teclado ",280.00, 1);
        var produto2 = new Produto("Monitor ", 1.800, 1 );

        ArrayList<Produto>listaDeProduto = new ArrayList<>();
        listaDeProduto.add(produto);
        listaDeProduto.add(produto1);
        listaDeProduto.add(produto2);
        System.out.println("Tamanho da lista: " + listaDeProduto.size());
        System.out.println(listaDeProduto);
        System.out.println("Primeiro produtos da lista: " + listaDeProduto.get(0).toString());

    }
}

5 respostas

Boa tarde Vagner! Tudo bem com você?

Meus parabéns pela conclusão do desafio e por compartilhar o seu resultado com a comunidade do fórum da Alura. Seu código está no caminho certo e atende bem o que foi proposto na atividade.

Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

adicionando a classe de produtosPerecivel

public class ProdutosPerecivel extends Produto {
    String datavalidade;


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


    public String getDatavalidade() {
        return datavalidade;
    }


}

classe man

import java.time.Period;
import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        ProdutosPerecivel produtos = new ProdutosPerecivel("Leite Integral Ninho", 5.99, 1, "02/09/2024");
        ProdutosPerecivel produtos1 = new ProdutosPerecivel("Danone ", 27.99, 6, "12/12/2024");
        Produto produto0 = new Produto("Prato de Plastico",12.99, 1 );
        Produto produto1 = new Produto("Garfo Descartável ", 12.99, 1);


        ArrayList<Produto>listaDeProdutos = new ArrayList<>();
        listaDeProdutos.add(produto1);
        listaDeProdutos.add(produto0);
        listaDeProdutos.add(produtos1);
        listaDeProdutos.add(produtos);

        for (Produto produto : listaDeProdutos ){
            System.out.println(produto);
        }
        System.out.println();
        System.out.println("Item perecível " + listaDeProdutos.get(3) + ", data de validade: " + produtos.getDatavalidade());
        System.out.println("Item perecível " + listaDeProdutos.get(2) + ", data de validade: " + produtos1.getDatavalidade());
        System.out.println();
        System.out.println("Tamanho da lista: " + listaDeProdutos.size());

    }
}

Rafa, agradeço o retorno! fiz algumas alterações e melhoria no código, acredito ter ficado melhor, aceito sujes-toes e criticas construtivas, tks

solução!

Bom dia Vagner! Tudo bem?

Obrigado por compartilhar seu código. Vou deixar algumas sugestões que podem ajudar a melhorar ainda mais:

  • Consistência no nome das classes: Para seguir as convenções de nomenclatura em Java, sugiro renomear a classe ProdutosPerecivel para ProdutoPerecivel. Em geral, o nome das classes é no singular, como em Produto

  • Acessibilidade do Atributo datavalidade: O atributo datavalidade na classe ProdutoPerecivel está sem um modificador de acesso. Para garantir a encapsulação, é interessante defini-lo como private, assim como você fez com os atributos na classe Produto. Isso ajuda a proteger a integridade dos dados

  • Formatar a data de validade: Quando estamos trabalhando com datas, é interessante usar a classe LocalDate ao invés de String para o atributo datavalidade. Isso facilita operações como validação de datas e cálculos com períodos, além de tornar o código mais robusto. O código da classe ProdutoPerecivel ficaria como apresentado abaixo:

    import java.time.LocalDate;
    
    public class ProdutoPerecivel extends Produto {
        private LocalDate datavalidade;
    
        public ProdutoPerecivel(String nome, double preco, int quantidade, LocalDate datavalidade) {
            super(nome, preco, quantidade);
            this.datavalidade = datavalidade;
        }
    
        public LocalDate getDatavalidade() {
            return datavalidade;
        }
    }
    

    Criação do objeto ProdutoPerecivel usando a classe LocalDate: Com as mudanças do tópico anterior, quando for fornecer o atributo datavalidade, basta usar o método of() da classe LocalDate, seguindo a seguinte sintaxe:

    LocalDate.of(ano,mes,dia)
    
    ProdutoPerecivel produtos = new ProdutoPerecivel("Leite Integral Ninho", 5.99, 1, LocalDate.of(2024, 9, 2));
    

    Lembrete: Não se esqueça de importar a classe LocalDate tanto na classe ProdutoPerecivel quanto na classe Principal, adicionando a seguinte linha no início dos arquivos:

    import java.time.LocalDate;
    

Essas alterações tornam o código mais alinhado com as boas práticas de programação em Java, além de melhorar a clareza e a manutenção do seu projeto.

Espero ter lhe ajudado. Abraços e bons estudos.

realizei as alterações e ficou muito top!!! valeuuu