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}");
}
}
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
}
}
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
}
}
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; }
}
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)