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: controle de velocidade

Classe Program:

using Encapsulamento;

Veiculo veiculo = new("ABC-1234");
veiculo.AtualizarVelocidade(72.5);

Console.WriteLine("Veículo: " + veiculo.Placa);
Console.WriteLine("Velocidade atual: " + veiculo.VelocidadeAtual + " km/h");

Classe Veiculo

namespace Encapsulamento;

internal class Veiculo(string placa)
{
    public string Placa { get; private set; } = placa;

    private double velocidadeAtual;

    public void AtualizarVelocidade(double novaVelocidade)
    {
        this.velocidadeAtual = novaVelocidade;
    }

    public double VelocidadeAtual
    {
        get
        {
            return velocidadeAtual;
        }
    }
}
1 resposta
solução!

Oi, Fabiano, como vai?

Sua implementação atende aos requisitos da atividade e aplica corretamente o conceito de encapsulamento. O campo velocidadeAtual está privado, impedindo alterações diretas, e a atualização ocorre exclusivamente por meio do método AtualizarVelocidade(), conforme solicitado.

A propriedade VelocidadeAtual foi criada apenas com get, permitindo a leitura do valor sem expor sua modificação externa. Além disso, a propriedade Placa também está protegida contra alterações externas por meio do private set, o que agrega ainda mais controle à classe.

Você consegue identificar outros atributos de um veículo que também poderiam se beneficiar do encapsulamento para evitar alterações indevidas?

Parabéns pela resolução da atividade e por compartilhar seu código. Continue participando do fórum, ele está à disposição para apoiar seu aprendizado.

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