C#-Kapselung
Verpackung ist definiert als „das Einschließen eines oder mehrerer Elemente in einem physischen oder logischen Paket“. In der objektorientierten Programmiermethodik wird die Kapselung verwendet, um den Zugriff auf Implementierungsdetails zu verhindern.
Abstraktion und Kapselung sind relevante Merkmale der objektorientierten Programmierung. Die Abstraktion ermöglicht die Visualisierung relevanter Informationen und die Kapselung ermöglicht es Programmierern, den gewünschten Abstraktionsgrad zu erreichen.
Die Kapselung wird mithilfe von Zugriffsmodifikatoren implementiert. Ein Zugriffsmodifikator definiert den Umfang und die Sichtbarkeit eines Klassenmitglieds. Die von C# unterstützten Zugriffsmodifikatoren lauten wie folgt:
Öffentlich
Privat
Geschützt
Intern
Geschützt intern
Modifikator für öffentlichen Zugriff
Modifikator für öffentlichen Zugriff ermöglicht einer Klasse, ihre Mitgliedsvariablen und Mitgliedsfunktionen anderen Funktionen und Objekten zugänglich zu machen. Auf jedes öffentliche Mitglied können externe Klassen zugreifen.
Das folgende Beispiel veranschaulicht dies:
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()); } }//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(); } } }
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er die folgenden Ergebnisse:
长度: 4.5 宽度: 3.5 面积: 15.75
oben Im Fall von , werden die Mitgliedsvariablen Länge und Breite als öffentlich deklariert, sodass die Funktion Main() mithilfe der Instanz r der Klasse „Rechteck“ auf sie zugreifen kann.
Memberfunktionen Display() und GetArea() können auch direkt auf diese Variablen zugreifen, ohne Klasseninstanzen zu verwenden.
Die Mitgliedsfunktion Display() ist ebenfalls als öffentlich deklariert, sodass Main() auch über eine Instanz r der Rechteckklasse auf sie zugreifen kann.
Privater Zugriffsmodifikator
Privater Zugriffsmodifikator ermöglicht einer Klasse, ihre Mitgliedsvariablen und Mitgliedsfunktionen vor anderen Funktionen und Objekten zu verbergen. Nur Funktionen innerhalb derselben Klasse können auf ihre privaten Mitglieder zugreifen. Selbst Instanzen einer Klasse können nicht auf ihre privaten Mitglieder zugreifen.
Das folgende Beispiel veranschaulicht dies:
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(); } } }
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er die folgenden Ergebnisse:
请输入长度: 4.4 请输入宽度: 3.3 长度: 4.4 宽度: 3.3 面积: 14.52
oben Im Fall von , werden die Mitgliedsvariablen Länge und Breite als privat deklariert, sodass die Funktion Main() nicht auf sie zugreifen kann.
Die Memberfunktionen AcceptDetails() und Display() können auf diese Variablen zugreifen.
Da die Mitgliedsfunktionen AcceptDetails() und Display() öffentlich deklariert sind, kann Main() über eine Instanz r der Rechteck-Klasse auf sie zugreifen.
Geschützter Zugriffsmodifikator
Geschützter Zugriffsmodifikator ermöglicht einer Unterklasse den Zugriff auf die Mitgliedsvariablen und Mitgliedsfunktionen ihrer Basisklasse. Das hilft bei der Vererbung. Wir werden dies ausführlich im Kapitel „Vererbung“ besprechen. Besprechen Sie dies ausführlicher.
Interner Zugriffsmodifikator
Der interne Zugriffsspezifizierer ermöglicht einer Klasse, ihre Mitgliedsvariablen und Mitgliedsfunktionen anderen Funktionen und Objekten im aktuellen Programm zugänglich zu machen. Mit anderen Worten: Auf jedes Mitglied mit dem internen Zugriffsmodifikator kann von jeder Klasse oder Methode zugegriffen werden, die in der Anwendung definiert ist, in der das Mitglied definiert ist.
Das folgende Beispiel veranschaulicht dies:
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(); } } }
长度: 4.5 宽度: 3.5 面积: 15.75
Bitte beachten Sie im obigen Beispiel die Mitgliedsfunktion GetArea () wird ohne Zugriffsmodifikatoren deklariert. Wenn kein Zugriffsmodifikator angegeben ist, wird der Standardzugriffsmodifikator des Klassenmitglieds verwendet, der privat ist.
Geschützter interner Zugriffsmodifikator
Der geschützte interne Zugriffsmodifikator ermöglicht einer Klasse, ihre Mitgliedsvariablen und Mitgliedsfunktionen vor anderen Klassenobjekten und -funktionen außerhalb von Unterklassen innerhalb derselben Anwendung zu verbergen. Dies wird auch zur Implementierung der Vererbung verwendet.
Das Obige ist der Inhalt des [C#-Tutorials] C#-Kapselung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com).