Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Maîtriser l'encapsulation en C# : protéger le code et améliorer la conception

L'encapsulation est le processus consistant à enfermer un ou plusieurs éléments dans un paquet physique ou logique. En programmation orientée objet, elle empêche l'accès aux détails d'implémentation.

L'abstraction et l'encapsulation sont liées : l'abstraction rend l'information pertinente visible, tandis que l'encapsulation permet au programmeur d'implémenter le niveau d'abstraction souhaité.

L'encapsulation est implémentée via les spécificateurs d'accès. Un spécificateur définit la portée et la visibilité d'un membre de classe. C# supporte :

Spécificateur public

Permet à une classe d'exposer ses variables et fonctions membres aux autres fonctions et objets. Tout membre public est accessible depuis l'extérieur de la classe.

Exemple

using System;

namespace ApplicationRectangle
{
    class Rectangle
    {
        // variables membres publiques
        public double longueur;
        public double largeur;
        
        public double GetAire()
        {
            return longueur * largeur;
        }
        
        public void Afficher()
        {
            Console.WriteLine("Longueur : {0}", longueur);
            Console.WriteLine("Largeur : {0}", largeur);
            Console.WriteLine("Aire : {0}", GetAire());
        }
    }
    
    class ExecuterRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.longueur = 4.5;
            r.largeur = 3.5;
            r.Afficher();
            Console.ReadLine();
        }
    }
}

Résultat :

Longueur : 4.5
Largeur : 3.5
Aire : 15.75

Spécificateur private

Permet à une classe de cacher ses variables et fonctions membres. Seules les fonctions de la même classe peuvent accéder aux membres privés. Même une instance de la classe ne peut pas y accéder.

Exemple

using System;

namespace ApplicationRectangle
{
    class Rectangle
    {
        // variables membres privées
        private double longueur;
        private double largeur;
        
        public void AccepterDetails()
        {
            Console.WriteLine("Entrez la longueur : ");
            longueur = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Entrez la largeur : ");
            largeur = Convert.ToDouble(Console.ReadLine());
        }
        
        public double GetAire()
        {
            return longueur * largeur;
        }
        
        public void Afficher()
        {
            Console.WriteLine("Longueur : {0}", longueur);
            Console.WriteLine("Largeur : {0}", largeur);
            Console.WriteLine("Aire : {0}", GetAire());
        }
    }
    
    class ExecuterRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.AccepterDetails();
            r.Afficher();
            Console.ReadLine();
        }
    }
}

Résultat :

Entrez la longueur : 4.4
Entrez la largeur : 3.3
Longueur : 4.4
Largeur : 3.3
Aire : 14.52

Spécificateur protected

Permet à une classe enfant d'accéder aux membres de sa classe de base, facilitant l'héritage.

Spécificateur internal

Expose les membres aux autres fonctions et objets dans l'assembly actuel. Tout membre internal est accessible depuis toute classe ou méthode définie dans la même application.

Exemple

using System;

namespace ApplicationRectangle
{
    class Rectangle
    {
        internal double longueur;
        internal double largeur;
        
        double GetAire() // par défaut private
        {
            return longueur * largeur;
        }
        
        public void Afficher()
        {
            Console.WriteLine("Longueur : {0}", longueur);
            Console.WriteLine("Largeur : {0}", largeur);
            Console.WriteLine("Aire : {0}", GetAire());
        }
    }
    
    class ExecuterRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.longueur = 4.5;
            r.largeur = 3.5;
            r.Afficher();
            Console.ReadLine();
        }
    }
}

Note : si aucun spécificateur n'est mentionné, le défaut pour un membre de classe est private.

Spécificateur protected internal

Combine protected et internal : accessible aux classes dérivées dans le même assembly. Utilisé pour l'héritage.

Langue C

  1. Classes et objets C# : Fondations pour une POO robuste
  2. Comprendre les modificateurs d'accès C# : Public, Private, Protected, Internal et plus
  3. Mot-clé Static C# : Maîtriser les variables, méthodes et classes statiques
  4. Maîtriser les classes et méthodes abstraites C# : Guide pratique
  5. Comprendre les classes imbriquées C# : Définition, utilisation et héritage
  6. Comprendre les classes et méthodes partielles C#
  7. Maîtriser les classes et méthodes sealed en C# : Quand les utiliser, exemples clairs et sécurité du code
  8. Encapsulation Java expliquée : Masquage sécurisé des données et contrôle
  9. Comprendre le polymorphisme en C++ : Guide pratique