1
resposta

fiz o exercicios com esse lógica o codigo funciona, mas gostaria de saber se ele está no padrão

package java_alura;

import java.util.ArrayList;

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

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

    produtos.add(new Produto("Tablet", 900.99));
    produtos.add(new Produto("celular", -677.00));
    produtos.add(new Produto("Mouse", 20.00));

    for (Produto listaProdutos : produtos){
        if (listaProdutos.getPreco() < 0.00){
            System.out.printf("\n %s - Produto invalido valor negativo", listaProdutos.getNome());

        } else {
            System.out.printf("\n %s - valor: %.2f",listaProdutos.getNome(),listaProdutos.getPreco());
        }
    }
    
    
    package java_alura;

public class Produto {

private String nome;

private  double preco;

public double getPreco() {
    return preco;
}

public String getNome() {
    return nome;
}

public Produto(String nome, Double preco) {
    this.nome = nome;
    this.preco = preco;
}

}

1 resposta

Oi, Daniel! Como vai?

Você estruturou bem a lógica de validação dos produtos e demonstrou atenção ao detalhe ao tratar preços negativos. Ótimo trabalho! Isso mostra que você já está aplicando o conceito de encapsulamento ao acessar os atributos apenas via getters.

Uma dica interessante para o futuro é aplicar a validação já dentro da classe Produto, impedindo a criação de objetos com valores inválidos. Veja este exemplo:


public Produto(String nome, Double preco) {
    if (preco < 0) {
        throw new IllegalArgumentException("Preço não pode ser negativo.");
    }
    this.nome = nome;
    this.preco = preco;
}

Assim, o código throw new IllegalArgumentException impede que um produto inválido seja criado, mantendo a integridade dos dados desde o início.

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