Heim Backend-Entwicklung C#.Net-Tutorial [C#-Tutorial] C#-Kapselung

[C#-Tutorial] C#-Kapselung

Dec 26, 2016 pm 02:16 PM
c#

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();
        }
    }
}
Nach dem Login kopieren

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er die folgenden Ergebnisse:

长度: 4.5
宽度: 3.5
面积: 15.75
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }
    }
}
Nach dem Login kopieren

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er die folgenden Ergebnisse:

请输入长度:
4.4
请输入宽度:
3.3
长度: 4.4
宽度: 3.3
面积: 14.52
Nach dem Login kopieren

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();
        }
    }
}
Nach dem Login kopieren
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er die folgenden Ergebnisse:
长度: 4.5
宽度: 3.5
面积: 15.75
Nach dem Login kopieren
Nach dem Login kopieren

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 (www.php.cn).


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

Zugriffsmodifikatoren in C# Zugriffsmodifikatoren in C# Sep 03, 2024 pm 03:24 PM

Leitfaden zu den Zugriffsmodifikatoren in C#. Wir haben die Einführungstypen von Zugriffsmodifikatoren in C# zusammen mit Beispielen und Ausgaben besprochen.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

C#-Serialisierung C#-Serialisierung Sep 03, 2024 pm 03:30 PM

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

See all articles