1
resposta

[Projeto] Minha solução

public class Produto {
    String nome;
    double preco;

    void validacaoPreco() {
        if (this.preco < 0) {
            System.out.println("Preço inválido.");
            preco = 0;
        }
        System.out.println("Produto: " + this.nome);
        System.out.println("Preço: " + this.preco);
    }

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

    public static void main(String[] args) {
        Produto produto = new Produto("Mouse", 68);

    }
}
1 resposta

Oi, João! Como vai?

Agradeço por compartilhar.

Gostei de como você já aplicou a validação diretamente no construtor e utilizou o this corretamente para acessar os atributos. Isso mostra que você entendeu bem a ideia de garantir que o objeto já nasça em um estado válido, o que é um ponto importante no encapsulamento.

Uma dica interessante para o futuro é usar getters e setters para controlar melhor o acesso aos atributos.


private double preco;

public void setPreco(double preco) {
    if (preco < 0) {
        this.preco = 0;
    } else {
        this.preco = preco;
    }
}

public double getPreco() {
    return this.preco;
}

Esse código garante que o preço nunca seja negativo ao ser alterado, centralizando a validação em um único ponto.

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