Maison > développement back-end > C++ > Comment les modificateurs d'accès (public, privé, protégé) et le modificateur statique affectent-ils l'accessibilité des membres en C #?

Comment les modificateurs d'accès (public, privé, protégé) et le modificateur statique affectent-ils l'accessibilité des membres en C #?

DDD
Libérer: 2025-01-30 02:23:07
original
423 Les gens l'ont consulté

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

Comprendre l'accès et les modificateurs statiques en C #

C # utilise des modificateurs d'accès (public, private, protected) pour contrôler l'accessibilité des membres dans les classes et les structures. Ces modificateurs définissent la portée à partir de laquelle un membre de classe (champ, propriété, méthode) est accessible. Le modificateur static ajoute une autre couche de contrôle, définissant des membres qui appartiennent à la classe elle-même, et non des instances individuelles.

Modificateurs d'accès:

  • public: Les membres déclarés public sont accessibles de n'importe où - dans le même assemblage ou tout autre assemblée qui le faisait référence. Cela offre l'accessibilité la plus large.

  • private: Les membres déclarés private ne sont accessibles que dans la classe où ils sont définis. Cela applique une forte encapsulation et une cachette de données.

  • protected: Les membres déclarés protected sont accessibles dans la classe où ils sont définis, ainsi que dans les classes dérivées (classes qui héritent de la classe originale). Cela permet l'héritage et l'extension contrôlés des fonctionnalités.

  • Aucun modificateur (par défaut): Si aucun modificateur d'accès n'est spécifié, le niveau d'accès par défaut est généralement internal. Cela signifie que le membre n'est accessible que dans le même assemblée (projet) où il est défini.

Modificateur statique:

Le modificateur static indique qu'un membre appartient à la classe elle-même, et non à une instance spécifique de la classe. Les membres statiques sont partagés sur toutes les instances. Les membres statiques sont accessibles à l'aide du nom de classe, pas une instance d'objet. Les classes statiques ne peuvent pas être instanciées.

Exemple illustratif:

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();
    }
}
Copier après la connexion

Dans cet exemple, publicVar et PublicMethod sont librement accessibles. privateVar et PrivateMethod ne sont accessibles que dans ExampleClass. protectedVar et ProtectedMethod sont accessibles dans ExampleClass et toutes les classes qui en héritent. staticVar et StaticMethod sont accessibles directement via le nom de classe.

Applications pratiques:

Les modificateurs d'accès sont fondamentaux pour les principes de conception orientés objet comme l'encapsulation et l'abstraction. Ils aident à contrôler comment les différentes parties de votre application interagissent, promouvant la maintenabilité du code et réduisant les effets secondaires involontaires. Les membres statiques sont utiles pour les fonctions d'utilité ou les constantes qui ne nécessitent pas d'instance d'objet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal