"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo los modificadores de acceso (público, privado, protegido) y el modificador estático afectan la accesibilidad de los miembros en C#?

¿Cómo los modificadores de acceso (público, privado, protegido) y el modificador estático afectan la accesibilidad de los miembros en C#?

Publicado el 2025-03-23
Navegar:718

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

comprensión de acceso y modificadores estáticos en C#

c# usa modificadores de acceso ( public , private , protegido ) para controlar la accesibilidad de los miembros dentro de clases y estructuras. Estos modificadores definen el alcance del que se puede acceder a un miembro de clase (campo, propiedad, método). El modificador static agrega otra capa de control, definiendo miembros que pertenecen a la clase en sí, no instancias individuales.

Access Modifiers:

  • public : miembros declarados como public son ​​accesibles desde cualquier lugar, dentro del mismo ensamblaje o cualquier otro ensamblaje que lo haga. Esto proporciona la accesibilidad más amplia.

  • private : miembros declarados como private solo son accesibles desde la clase donde se definen. Esto impone una fuerte encapsulación y ocultación de datos.

  • protegido : miembros declarados como protegidos son ​​accesibles dentro de la clase donde se definen, y también dentro de las clases derivadas (clases que heredan de la clase original). Esto permite la herencia y extensión controladas de la funcionalidad.

  • sin modificador (predeterminado): Si no se especifica el modificador de acceso, el nivel de acceso predeterminado es generalmente interno . Esto significa que el miembro es accesible solo desde el mismo ensamblaje (proyecto) donde se define.

Modificador estático:

el modificador static indica que un miembro pertenece a la clase misma, no a ninguna instancia específica de la clase. Los miembros estáticos se comparten en todas las instancias. Se accede a los miembros estáticos utilizando el nombre de clase, no una instancia de objeto. Las clases estáticas no se pueden instanciar.

ejemplo 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();
    }
}

en este ejemplo, publicVar y publicMethod son ​​libremente accesibles. privateVar y privateMethod solo son accesibles dentro de exampleclass . ProtectedVar y ProtectedMethod son ​​accesibles dentro de ESPLECLAss y cualquier clases que herede desde él. staticvar y staticmethod se accede directamente a través del nombre de clase.

Aplicaciones prácticas:

Los modificadores de acceso son fundamentales para los principios de diseño orientados a objetos, como la encapsulación y la abstracción. Ayudan a controlar cómo las diferentes partes de su aplicación interactúan, promoviendo el mantenimiento del código y reduciendo los efectos secundarios no deseados. Los miembros estáticos son útiles para funciones de utilidad o constantes que no requieren una instancia de objeto.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3