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

C# - Encapsulation

Encapsulation est défini « comme le processus consistant à enfermer un ou plusieurs éléments dans un emballage physique ou logique ». L'encapsulation, dans la méthodologie de programmation orientée objet, empêche l'accès aux détails de mise en œuvre.

L'abstraction et l'encapsulation sont des fonctionnalités liées dans la programmation orientée objet. L'abstraction permet de rendre visibles les informations pertinentes et l'encapsulation permet à un programmeur de implémenter le niveau d'abstraction souhaité .

L'encapsulation est implémentée à l'aide de spécificateurs d'accès . Un spécificateur d'accès définit la portée et la visibilité d'un membre de classe. C# prend en charge les spécificateurs d'accès suivants −

Spécificateur d'accès public

Le spécificateur d'accès public permet à une classe d'exposer ses variables membres et ses fonctions membres à d'autres fonctions et objets. Tout membre public est accessible depuis l'extérieur de la classe.

L'exemple suivant illustre cela −

Démo en direct
using System;

namespace RectangleApplication {
   class Rectangle {
      //member variables
      public double length;
      public double width;
      
      public double GetArea() {
         return length * width;
      }
      public void Display() {
         Console.WriteLine("Length: {0}", length);
         Console.WriteLine("Width: {0}", width);
         Console.WriteLine("Area: {0}", GetArea());
      }
   }//end class Rectangle
   
   class ExecuteRectangle {
      static void Main(string[] args) {
         Rectangle r = new Rectangle();
         r.length = 4.5;
         r.width = 3.5;
         r.Display();
         Console.ReadLine();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

Length: 4.5
Width: 3.5
Area: 15.75

Dans l'exemple précédent, les variables membres longueur et largeur sont déclarées public , afin qu'ils soient accessibles à partir de la fonction Main() en utilisant une instance de la classe Rectangle, nommée r .

La fonction membre Display() et GetArea() peut également accéder directement à ces variables sans utiliser aucune instance de la classe.

Les fonctions membres Display() est également déclaré public , il est donc également accessible depuis Main() en utilisant une instance de la classe Rectangle, nommée r .

Spécificateur d'accès privé

Le spécificateur d'accès privé permet à une classe de masquer ses variables membres et ses fonctions membres des autres fonctions et objets. Seules les fonctions de la même classe peuvent accéder à ses membres privés. Même une instance d'une classe ne peut pas accéder à ses membres privés.

L'exemple suivant illustre cela −

Démo en direct
using System;

namespace RectangleApplication {
   class Rectangle {
      //member variables
      private double length;
      private double width;
      
      public void Acceptdetails() {
         Console.WriteLine("Enter Length: ");
         length = Convert.ToDouble(Console.ReadLine());
         Console.WriteLine("Enter Width: ");
         width = Convert.ToDouble(Console.ReadLine());
      }
      public double GetArea() {
         return length * width;
      }
      public void Display() {
         Console.WriteLine("Length: {0}", length);
         Console.WriteLine("Width: {0}", width);
         Console.WriteLine("Area: {0}", GetArea());
      }
   }//end class Rectangle
   
   class ExecuteRectangle {
      static void Main(string[] args) {
         Rectangle r = new Rectangle();
         r.Acceptdetails();
         r.Display();
         Console.ReadLine();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

Enter Length:
4.4
Enter Width:
3.3
Length: 4.4
Width: 3.3
Area: 14.52

Dans l'exemple précédent, les variables membres longueur et largeur sont déclarées privées , ils ne sont donc pas accessibles depuis la fonction Main(). Les fonctions membres AcceptDetails() et Afficher() peuvent accéder à ces variables. Puisque les fonctions membres AcceptDetails() et Afficher() sont déclarés publics , ils sont accessibles depuis Main() en utilisant une instance de la classe Rectangle, nommée r .

Spécificateur d'accès protégé

Le spécificateur d'accès protégé permet à une classe enfant d'accéder aux variables membres et aux fonctions membres de sa classe de base. De cette façon, cela aide à implémenter l'héritage. Nous en discuterons plus en détail dans le chapitre sur l'héritage.

Spécificateur d'accès interne

Le spécificateur d'accès interne permet à une classe d'exposer ses variables membres et ses fonctions membres à d'autres fonctions et objets de l'assembly actuel. En d'autres termes, tout membre avec un spécificateur d'accès interne est accessible à partir de n'importe quelle classe ou méthode définie dans l'application dans laquelle le membre est défini.

Le programme suivant illustre cela −

Démo en direct
using System;

namespace RectangleApplication {
   class Rectangle {
      //member variables
      internal double length;
      internal double width;
      
      double GetArea() {
         return length * width;
      }
      public void Display() {
         Console.WriteLine("Length: {0}", length);
         Console.WriteLine("Width: {0}", width);
         Console.WriteLine("Area: {0}", GetArea());
      }
   }//end class Rectangle
   
   class ExecuteRectangle {
      static void Main(string[] args) {
         Rectangle r = new Rectangle();
         r.length = 4.5;
         r.width = 3.5;
         r.Display();
         Console.ReadLine();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

Length: 4.5
Width: 3.5
Area: 15.75

Dans l'exemple précédent, notez que la fonction membre GetArea() n'est déclaré avec aucun spécificateur d'accès. Quel serait alors le spécificateur d'accès par défaut d'un membre de classe si nous n'en mentionnons aucun ? C'est privé .

Spécificateur d'accès interne protégé

Le spécificateur d'accès interne protégé permet à une classe de masquer ses variables membres et ses fonctions membres des autres objets et fonctions de la classe, à l'exception d'une classe enfant au sein de la même application. Ceci est également utilisé lors de la mise en œuvre de l'héritage.


Langue C

  1. Classe et objet C#
  2. Modificateurs d'accès C#
  3. Mot-clé statique C#
  4. Classe abstraite et méthode C#
  5. Classe imbriquée C#
  6. Classe partielle C# et méthode partielle
  7. Classe et méthode scellées C#
  8. Java - Encapsulation
  9. Polymorphisme en C++