1
resposta

Faça como eu fiz: encapsulando reajuste de salário

 namespace PooEncapsulamento
  {
 public class Funcionario
    {
    private decimal salario;
    public string  Nome { get;  set; }

    public Funcionario(string nome, decimal salarioInicial)
    {
        this.Nome = nome;
        this.salario = salarioInicial;
    }

    public void ReajustarSalario(decimal novoValor)
    {
        if (novoValor < salario)
        {
            Console.WriteLine("O novo salário deve ser maior que o salário atual.");
        }
        else
        {
            salario = novoValor;
            Console.WriteLine($"Salário reajustado para: {salario:C}");
        }
    }

    public decimal Salario { get { return salario; } }
    }
 }
1 resposta

Oi, Jonas! Como vai?

Agradeço por compartilhar.

Muito legal ver como você aplicou o encapsulamento, mantendo o salario privado e controlando a alteração por meio do método ReajustarSalario. Isso mostra um bom entendimento de proteção de dados e regras de negócio dentro da classe.

Você pode utilizar uma propriedade com validação no set, evitando a necessidade de um método separado.


private decimal salario;

public decimal Salario
{
    get { return salario; }
    set
    {
        if (value > salario)
        {
            salario = value;
        }
    }
}

Nesse código, o valor do salário só e atualizado se for maior que o atual, garantindo a regra diretamente na propriedade.

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