"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como os modificadores de acesso (público, privado, protegido) e o modificador estático afetam a acessibilidade dos membros em C#?

Como os modificadores de acesso (público, privado, protegido) e o modificador estático afetam a acessibilidade dos membros em C#?

Postado em 2025-03-23
Navegar:903

How Do Access Modifiers (public, private, protected) and the Static Modifier Affect Member Accessibility in C#?

Compreendendo o acesso e modificadores estáticos em C#

c# usa modificadores de acesso ( public , private , protected ) para controlar a acessibilidade do membro nas classes e structs. Esses modificadores definem o escopo do qual um membro da classe (campo, propriedade, método) pode ser acessado. O modificador estático adiciona outra camada de controle, definindo membros que pertencem à própria classe, não instâncias individuais.

Access modifiers:

  • public : membros declarados como public são acessíveis de qualquer lugar - dentro da mesma assembléia ou qualquer outra assembléia referenciando -a. Isso fornece a maior acessibilidade.

  • private : membros declarados como private são acessíveis apenas a partir da classe onde são definidos. Isso aplica forte encapsulamento e ocultação de dados.

  • protected : membros declarados como protected são acessíveis dentro da classe onde são definidos e também dentro de classes derivadas (classes que herdam da classe original). Isso permite herança controlada e extensão da funcionalidade.

  • nenhum modifier (padrão): Se nenhum modificador de acesso for especificado, o nível de acesso padrão é geralmente interno . Isso significa que o membro é acessível apenas dentro da mesma montagem (projeto) onde está definido.

modificador estático:

o modificador estático indica que um membro pertence à própria classe, não a nenhuma instância específica da classe. Os membros estáticos são compartilhados em todas as instâncias. Os membros estáticos são acessados ​​usando o nome da classe, não uma instância de objeto. Classes estáticas não podem ser instantadas.

exemplo ilustrativo:

public class ExampleClass
{
    private int privateVar;
    protected int protectedVar;
    public int publicVar;
    static int staticVar;

    public void PublicMethod() { }
    private void PrivateMethod() { }
    protected void ProtectedMethod() { }
    static void StaticMethod() { }

    public static void Main(string[] args)
    {
        ExampleClass instance = new ExampleClass();
        instance.publicVar = 10;
        instance.PublicMethod();
        // instance.privateVar = 20; // Error: private
        // instance.PrivateMethod(); // Error: private

        ExampleClass.staticVar = 5;
        ExampleClass.StaticMethod();
    }
}

Neste exemplo, publicvar e publicMethod são gratuitamente acessíveis. privatevar e privatemethod são acessíveis apenas dentro de exempleclass . ProtectedVar e protectedMethod são acessíveis em exemplclass e qualquer classes que herde. staticvar e staticmethod são acessados ​​diretamente através do nome da classe.

APLICAÇÕES PRÁTICAS:

Os modificadores de acesso são fundamentais para princípios de design orientados a objetos, como encapsulamento e abstração. Eles ajudam a controlar como as diferentes partes do seu aplicativo interagem, promovendo a manutenção de código e reduzindo os efeitos colaterais não intencionais. Os membros estáticos são úteis para funções de utilidade ou constantes que não exigem uma instância de objeto.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3