DEV Community

Cover image for Entendendo Modificadores de Acesso em C#
Ivan Trindade
Ivan Trindade

Posted on

Entendendo Modificadores de Acesso em C#

Os modificadores de acesso são uma parte fundamental da programação orientada a objetos em C#. Eles determinam a visibilidade e acessibilidade dos tipos e membros do seu código, ajudando a implementar o conceito de encapsulamento. Neste artigo, vamos explorar todos os modificadores de acesso disponíveis em C# de uma forma clara e prática.

O que são Modificadores de Acesso?

Modificadores de acesso são palavras-chave que definem como as classes, métodos, propriedades e outros membros do seu código podem ser acessados por partes do programa. Vamos explorar os modificadores abaixo:

  • public
  • private
  • protected
  • internal

Vamos entender cada um deles em detalhes!

1. Public

O modificador public é o mais permissivo de todos. Membros públicos podem ser acessados de qualquer lugar do seu código, seja dentro do mesmo assembly ou em outros assemblies que referenciam o seu projeto.

public class Customer
{
    // Propriedade pública que pode ser acessada de qualquer lugar
    public string Name { get; set; }

    // Método público que pode ser chamado de qualquer lugar
    public void DisplayInfo()
    {
        Console.WriteLine($"Customer: {Name}");
    }
}
Enter fullscreen mode Exit fullscreen mode

2. Private

O modificador de acesso private é o mais restritivo. Membros privados só podem ser acessados dentro da própria classe onde foram declarados.

public class BankAccount
{
    // Campo privado que só pode ser acessado dentro desta classe
    private decimal _balance;

    // Método privado que só pode ser chamado dentro desta classe
    private void ValidateAmount(decimal amount)
    {
        if (amount <= 0)
            throw new ArgumentException("O valor deve ser maior que zero");
    }

    public void Deposit(decimal amount)
    {
        ValidateAmount(amount); // Ok: método privado chamado dentro da classe
        _balance += amount;     // Ok: campo privado acessado dentro da classe
    }
}
Enter fullscreen mode Exit fullscreen mode

3. Protected

O modificador protected permite que membros sejam acessados dentro da própria classe e por classes que herdam dela (classes filhas).

public class Animal
{
    // Campo protegido que pode ser acessado por classes filhas
    protected string Species;

    // Método protegido que pode ser chamado por classes filhas
    protected virtual void MakeSound()
    {
        Console.WriteLine("Som genérico de animal");
    }
}

public class Dog : Animal
{
    public void Initialize()
    {
        Species = "Canino";    // Ok: campo protected acessado na classe filha
        MakeSound();           // Ok: método protected acessado na classe filha
    }
}
Enter fullscreen mode Exit fullscreen mode

4. Internal

O modificador internal permite que membros sejam acessados apenas dentro do mesmo projeto.

// Classe internal só pode ser usada dentro do mesmo projeto
internal class ConfigurationManager
{
    // Propriedade internal só pode ser acessada dentro do mesmo projeto
    internal string DatabaseConnection { get; set; }
}
Enter fullscreen mode Exit fullscreen mode

Conclusão

Os modificadores de acesso são ferramentas poderosas para controlar a visibilidade e o acesso aos membros das suas classes. Usar os modificadores corretamente ajuda a:

Manter um bom encapsulamento
Reduzir o acoplamento entre diferentes partes do código
Prevenir uso incorreto das suas classes
Facilitar a manutenção do código

Top comments (0)