1
resposta

[Projeto] Faça como eu fiz: o poder do encapsulamento

namespace ScreenSound.Modelos;

internal class Avaliacao
{
    public Avaliacao(int nota)
    {
        if(nota < 0) nota = 0;
        if(nota > 10) nota = 10;
        Nota = nota;
    }
    
    public int Nota { get; }


    public static Avaliacao Parse(string texto)
    {
        int nota = int.Parse(texto);
        return new Avaliacao(nota);
    }
}
1 resposta

Oii Eduardo, tudo bem?

Obrigada por compartilhar sua implementação no fórum! A solução ficou bem estruturada: as validações no construtor garantem que nenhum valor inválido escape, e o uso de get; sem setter mantém a Nota imutável após a criação — isso é encapsulamento bem aplicado.

O método Parse também é um toque bacana, seguindo o padrão comum em tipos do C# como o DateTime que foi mencionado na aula.

Se quiser se aprofundar mais nesse tema, o curso Praticando C#: orientação a objetos com encapsulamento pode ser um ótimo próximo passo.

Conte com a Alura para evoluir seus estudos. Fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade