Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Faça como eu fiz: controlando acesso

Classe Program:

Paciente paciente = new("Luiz Costa", 42);
HistoricoMedico historico = new("XPT-9987");
historico.ExibirCodigo();

Classe Paciente:

namespace Encapsulamento;

internal class Paciente(string nome, int idade)
{
    public string Nome { get; set; } = nome;

    public int Idade { get; set; } = idade;
}

Classe HistoricoMedico:

namespace Encapsulamento;

internal class HistoricoMedico(string codigoProntuario)
{
    public string CodigoProntuario { get; private set; } = codigoProntuario;

    public void ExibirCodigo()
    {
        Console.WriteLine($"Código do prontuário: {CodigoProntuario}");
    }
}
1 resposta
solução!

Oi, Fabiano! Como vai?

Seu projeto ficou bem organizado e mostra uma boa aplicação de encapsulamento, já que a propriedade CodigoProntuario tem private set, impedindo que o código do prontuário seja alterado diretamente fora da classe HistoricoMedico. Também ficou interessante separar a exibição do código em um método próprio, como ExibirCodigo().

Dica: para evoluir o exercício, você pode pensar em quais dados do Paciente também deveriam ter alteração controlada, como a Idade, criando regras no set para evitar valores inválidos. Como você ajustaria a classe Paciente para impedir uma idade negativa?

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