Encapsulation C#
Le
Le packaging est défini comme « enfermer un ou plusieurs articles dans un emballage physique ou logique ». Dans la méthodologie de programmation orientée objet, l'encapsulation est utilisée pour empêcher l'accès aux détails de l'implémentation.
L'abstraction et l'encapsulation sont des fonctionnalités pertinentes de la programmation orientée objet. L'abstraction permet la visualisation d'informations pertinentes et l'encapsulation permet aux programmeurs d'atteindre le niveau d'abstraction souhaité. L'encapsulation est implémentée à l'aide du
modificateur d'accès. Un modificateur d'accès définit la portée et la visibilité d'un membre de la classe. Les modificateurs d'accès pris en charge par C# sont les suivants :
- Public
- Privé
- Protégé
- Interne
- Interne protégé
Modificateur d'accès public
Le modificateur 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 aux classes extérieures.
L'exemple suivant illustre ceci :
using System; namespace RectangleApplication { class Rectangle { //成员变量 public double length; public double width; public double GetArea() { return length * width; } public void Display() { Console.WriteLine("长度: {0}", length); Console.WriteLine("宽度: {0}", width); Console.WriteLine("面积: {0}", GetArea()); } }// 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 les résultats suivants :
长度: 4.5 宽度: 3.5 面积: 15.75
Dans l'exemple ci-dessus, la longueur des variables membres et width sont déclarés comme public, ils sont donc accessibles par la fonction Main() en utilisant une instance de la classe Rectangle r. Les fonctions membres
Display() et GetArea() peuvent accéder directement à ces variables. La fonction membre
Display() est également déclarée comme public, elle peut donc également être utilisée par Main() en utilisant des instances de Classe rectangler Visite.
Modificateur d'accès privé
Le modificateur d'accès privé permet à une classe de masquer ses variables membres et ses fonctions membres des autres fonctions et objets. Seules les fonctions au sein de la même classe peuvent accéder à ses membres privés. Même les instances d'une classe ne peuvent pas accéder à ses membres privés.
L'exemple suivant illustre ceci :
using System; namespace RectangleApplication { class Rectangle { //成员变量 private double length; private double width; public void Acceptdetails() { Console.WriteLine("请输入长度:"); length = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入宽度:"); width = Convert.ToDouble(Console.ReadLine()); } public double GetArea() { return length * width; } public void Display() { Console.WriteLine("长度: {0}", length); Console.WriteLine("宽度: {0}", width); Console.WriteLine("面积: {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 les résultats suivants :
请输入长度: 4.4 请输入宽度: 3.3 长度: 4.4 宽度: 3.3 面积: 14.52
Dans l'exemple ci-dessus, la longueur des variables membres et width sont déclarés comme private, ils ne sont donc pas accessibles par la fonction Main(). Les fonctions membres
AcceptDetails() et Display() peuvent accéder à ces variables.
Puisque les fonctions membres AcceptDetails() et Display() sont déclarées comme public, elles peuvent être utilisées par Main( ) Accessible à l'aide d'une instance de la classe Rectangle r.
Modificateur d'accès protégé
Le modificateur d'accès protégé permet à une sous-classe d'accéder aux variables membres et aux fonctions membres de sa classe de base. Cela aide à l’héritage. Nous en discuterons en détail dans le chapitre sur l'héritage. Discutez-en plus en détail.
Modificateur 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 du programme actuel. En d’autres termes, tout membre doté du modificateur d’accès interne est accessible par n’importe quelle classe ou méthode définie dans l’application dans laquelle le membre est défini.
L'exemple suivant illustre ceci :
using System; namespace RectangleApplication { class Rectangle { //成员变量 internal double length; internal double width; double GetArea() { return length * width; } public void Display() { Console.WriteLine("长度: {0}", length); Console.WriteLine("宽度: {0}", width); Console.WriteLine("面积: {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 les résultats suivants :
长度: 4.5 宽度: 3.5 面积: 15.75
Dans l'exemple ci-dessus, veuillez noter que le la fonction membre GetArea() est déclarée sans aucun modificateur d'accès. Si aucun modificateur d'accès n'est spécifié, le modificateur d'accès par défaut du membre de la classe est utilisé, qui est privé.
Modificateur d'accès interne protégé
Le modificateur d'accès interne protégé permet à une classe de masquer ses variables membres et ses fonctions membres des autres objets et fonctions de classe en dehors des sous-classes au sein de la même application. Ceci est également utilisé pour implémenter l’héritage.