c concepts constructor
In diesem Tutorial werden einige wichtige Konzepte in der C # -Programmierung erläutert, z. B. Konstruktor, Destruktor, statische Klasse, Strukturen und Aufzählungen:
In einem unserer vorherigen Tutorials zu Objekten und Klassen haben wir gelernt, was eine Klasse und ein Objekt sind.
Ein Objekt ähnelt einem realen Objekt, und eine Klasse ist eine logische Sammlung ähnlicher Objekttypen. Es ist einer der grundlegendsten Typen in C #. In diesem Tutorial werden wir uns eingehend mit den anderen verwandten C # -Konzepten befassen.
=> Entdecken Sie hier die komplette C # -Trainingsreihe
In diesem Tutorial lernen wir einige wichtige Aspekte des Unterrichts kennen und wie wir sie in unseren Programmen verwenden können. Wir werden versuchen, einfache C # -Programme zu erstellen, die auf den Konzepten basieren, die wir in unseren vorherigen Tutorials gelernt haben.
Was du lernen wirst:
- Was ist ein Konstruktor in C #?
- Destruktoren in C #
- Statische Mitglieder in einer Klasse
- Statische Klasse in C #
- Strukturen in C #
- Unterschied zwischen Struktur und Klasse
- Struktur: Definition
- Aufzählungen in C #
- Eigenschaften in C #
- Fazit
- Literatur-Empfehlungen
Was ist ein Konstruktor in C #?
Der Konstruktor ist eine spezielle Art von Methode in der Programmiersprache C #, die automatisch aufgerufen oder aufgerufen wird, wenn ein Objekt der angegebenen Klasse erstellt wird.
Seine Hauptfunktion besteht darin, die Datenelemente des neu erstellten Objekts zu initialisieren. Eines der markantesten Merkmale des Konstruktors ist sein Name. Es hat den gleichen Namen wie die Klasse.
Es gibt grundsätzlich zwei Typen von Konstruktoren:
- Standard
- Parametriert
C # Standardkonstruktor
Wie der Name schon sagt, ist der Standardkonstruktor der Grundkonstruktor einer Klasse. Es hat kein Argument und wird zum Zeitpunkt der Objekterstellung direkt aufgerufen.
public class Program { public Program(){ Console.WriteLine('Constructor has been invoked'); } public static void Main(string() args) { Program p = new Program(); } } Die Ausgabe des folgenden Programms lautet:
Der Konstruktor wurde aufgerufen
Erläuterung
Wir haben einen Konstruktor 'Programm' innerhalb der Klasse 'Programm' definiert. Wenn wir nun die Klasse innerhalb der Hauptmethode initialisieren, wird der Konstruktor automatisch aufgerufen.
Daher wird jedes Code-Snippet, das wir im Konstruktor gespeichert haben, aufgerufen. Hier haben wir eine Meldung 'Konstruktor wurde aufgerufen' in geschweiften Klammern des Konstruktors gedruckt. Wenn wir also die Klasse initialisieren, wird der Konstruktor standardmäßig initialisiert und die Nachricht wird als Ausgabe gedruckt.
Parametrisierter Konstruktor
Wie der Name schon sagt, sind parametrisierte Konstruktoren der Konstruktor mit Parametern. Diese Konstruktoren werden verwendet, um unterschiedliche Werte an die Objekte zu übergeben.
public class Details { public Details(int a, int b){ int c = a+b; Console.WriteLine('The sum is: '+ c); } } public class Program { public static void Main(string() args) { Details d = new Details(2, 3); } } Die Ausgabe des folgenden Programms lautet:
Liste der Spionage-Apps für Android
Die Summe ist: 5
Erläuterung
In unserem vorherigen Beispiel mit dem Standardkonstruktor haben wir unsere Hauptmethode in derselben Klasse. In diesem Beispiel haben wir die Hauptmethode in einer anderen Klasse.
Wir haben eine Klasse namens 'Details', die einen parametrisierten Konstruktor enthält, der zwei ganzzahlige Werte akzeptiert. Innerhalb des Konstruktors drucken wir die Summe der ganzen Zahlen. Wir haben eine andere Klasse namens 'Programm', die unsere Hauptmethode enthält. Innerhalb der Hauptmethode haben wir die Klasse 'Details' initialisiert.
Wie bereits erläutert, werden beim Initialisieren einer Klasse ihre Konstruktoren automatisch aufgerufen. In diesem Fall wurde daher unsere Konstruktormethode 'Details' aufgerufen. Wenn wir den Parameter während der Initialisierung übergeben haben, wird die Ausgabe gedruckt.
Destruktoren in C #
Destruktoren sind genau das Gegenteil von Konstruktoren. Dies ist eine spezielle Methode der Klasse, die aufgerufen wird, wenn ein Klassenobjekt den Gültigkeitsbereich verlässt. Ähnlich wie bei einem Konstruktor entspricht auch ein Destruktorname genau dem des Klassennamens, jedoch mit dem Präfix „~“ (Tilde).
Der Destruktor akzeptiert weder einen Parameter noch gibt er einen Wert zurück. Der Destruktor zerstört die Klassenobjekte und wird daher hauptsächlich verwendet, um Speicher freizugeben, nachdem das Programm ausgeführt wurde. Ein weiterer wichtiger Punkt beim Destruktor ist, dass er weder überladen noch vererbt werden kann.
Beispiel für Destruktoren:
public class Program { public Program(){ Console.WriteLine('Constructor has been invoked'); } ~Program(){ Console.WriteLine('Destructor has been invoked'); } public static void Main(string() args) { Program p = new Program(); } } Die Ausgabe des folgenden Programms lautet:
Der Konstruktor wurde aufgerufen
Destruktor wurde aufgerufen
Erläuterung
Wir haben dasselbe Beispiel verwendet, mit dem wir den Konstruktor gelernt haben. Wir haben gerade einen Destruktor in der Programmklasse (~ Programm) hinzugefügt. Wenn wir das Objekt der Klasse initialisieren, wird der Konstruktor aufgerufen und das Objekt der Klasse erstellt. Dadurch wird der Ausdruck 'Konstruktor wurde aufgerufen' auf die Konsole gedruckt.
Wenn die Ausführung abgeschlossen ist und das Klassenobjekt den Gültigkeitsbereich verlässt, bewegt sich das Programm in Richtung Destruktor. Der Destruktor wird dann aufgerufen, was wiederum das Objekt zerstört. Hier haben wir eine Nachricht im Destruktor gedruckt, die nach dem Aufrufen des Destruktors auf der Konsole gedruckt wird.
Statische Mitglieder in einer Klasse
Die Mitglieder der Klasse können mit dem Schlüsselwort static als statisch deklariert werden. Wenn ein Objekt als statisch deklariert wird, gibt es unabhängig von der Anzahl der erstellten Objekte nur eine Kopie des statischen Objekts.
Statisch zu sein bedeutet, dass es eine einzelne Instanz des Mitglieds gibt, die für eine bestimmte Klasse existiert. Dies bedeutet, dass der Wert der statischen Funktion oder Variablen innerhalb der Klasse aufgerufen werden kann, ohne ein Objekt für sie zu erstellen.
Statische Variablen werden zum Deklarieren von Konstanten verwendet, da ihre Werte direkt durch Aufrufen der Klasse abgerufen werden können, anstatt eine Instanz davon zu erstellen.
Beispiel:
public class Details { public static void stat(){ Console.WriteLine('Static method invoked'); } } public class Program { public static void Main(string() args) { Details.stat(); } } Die Ausgabe des folgenden Programms lautet:
Aufgerufene statische Methode
Erläuterung
Im obigen Beispiel haben wir eine Klasse 'Details' erstellt, die eine statische Methode 'stat' enthält. Wir haben eine andere Klasse 'Programm', die die Hauptmethode enthält. In unseren vorherigen Themen haben wir gesehen, wie wir eine Klasse für den Zugriff auf Methoden initialisieren können. Wie bereits erwähnt, kann auf die statischen Elemente der Klasse mit der Initialisierung von Klassenobjekten zugegriffen werden.
Daher haben wir in der Hauptmethode die Methode gerade mit der Klasse direkt aufgerufen, ohne ein Objekt zu erstellen. Die Ausgabe des Programms führte den in die statische Methode geschriebenen Code aus. In diesem Fall haben wir eine Nachricht an die Konsole gedruckt.
Statische Klasse in C #
Eine statische Klasse ähnelt einer normalen Klasse in C #. Die statische Klasse kann nur statische Elemente haben und nicht instanziiert werden. Eine statische Klasse wird verwendet, um sicherzustellen, dass die Klasse nicht instanziiert wird. Eine statische Klasse wird mithilfe des Schlüsselworts static vor der Schlüsselwortklasse während der Deklaration deklariert.
Was ist die beste Handy-Spionage-App
Beispiel:
public static class Details { public static void multiply(int a, int b){ int c = a*b; Console.WriteLine('Multiplication result is: '+c); } } public class Program { public static void Main(string() args) { Details.multiply(2,8); } } Die Ausgabe des folgenden Programms lautet:
Das Multiplikationsergebnis ist: 16
Erläuterung
Im obigen Beispiel haben wir eine statische Klasse 'Details' erstellt und innerhalb der statischen Klasse eine weitere statische Methode 'Multiplizieren' erstellt. Innerhalb der Methode haben wir einige Codefragmente, die wir ausführen möchten. Wir haben auch eine andere Klasse 'Programm' mit der Hauptmethode.
Innerhalb der Hauptmethode haben wir die in der statischen Klasse vorhandene Multiplikationsmethode aufgerufen. Wenn Sie sich unsere Hauptmethode ansehen, werden Sie feststellen, dass wir kein Objekt für die statische Klasse initialisiert oder erstellt haben, sondern die Klasse direkt von der Hauptmethode aufgerufen haben.
Wenn wir also die Multiplikationsmethode direkt unter Verwendung des Klassennamens und durch Angabe von Parametern aufrufen, führt sie den Code aus und druckt die Ausgabe.
Strukturen in C #
Die Werttypentität in C # wird als Struktur bezeichnet. Es hilft dem Benutzer, verwandte Daten verschiedener Datentypen in einer einzigen Variablen zu speichern. Wie bereits erwähnt, ist eine Struktur eine Entität vom Werttyp, die Felder, Methoden, Konstruktoren, Operatoren, Ereignisse usw. enthält. Eine Struktur wird mit dem Schlüsselwort 'struct' deklariert.
Merkmale von Strukturen:
- Es kann Konstanten, Methoden, Eigenschaften, Index, Operatoren, Konstruktoren usw. enthalten.
- Es kann keinen Standardkonstruktor haben.
- Es kann eine Schnittstelle implementieren, aber nicht mit anderen Strukturen oder Klassen erben.
- Strukturen müssen mithilfe eines neuen Schlüsselworts für die Verwendung initialisiert werden.
Unterschied zwischen Struktur und Klasse
Struktur und Klasse mögen sich in gewisser Weise ähnlich fühlen, aber sie haben verschiedene Unterschiede.
Die Unterschiede umfassen:
- Eine Struktur ist ein Werttyp, während eine Klasse ein Referenztyp ist.
- Das neue Schlüsselwort wird benötigt, um Strukturen zu initialisieren.
- Strukturen können nur parametrisierte Konstruktoren haben, und andererseits kann eine Klasse sowohl Standardkonstruktoren als auch parametrisierte Konstruktoren haben.
Struktur: Definition
Eine Struktur kann mithilfe des Schlüsselworts struct definiert werden. Eine Struktur kann einen neuen Datentyp mit mehreren verschiedenen Elementen für das Programm definieren.
Eine Struktur kann auf ähnliche Weise wie eine Objektinitialisierung initialisiert werden, d. H. Unter Verwendung des neuen Schlüsselworts. Da eine Struktur eine Entität vom Werttyp ist, ist sie schneller zu bedienen als ein Klassenobjekt. Überall dort, wo Daten gespeichert werden müssen, müssen wir eine Struktur verwenden. Wenn Sie jedoch Daten übertragen müssen, ist es ratsam, eine Klasse als eine Struktur zu verwenden.
Beispiel:
public struct Cuboid { public int length; public int width; public int height; } public class Program { public static void Main(string() args) { Cuboid cb = new Cuboid(); cb.length = 10; cb.width = 20; cb.height = 30; Console.WriteLine('The volume of cuboid is: {0}', (cb.length*cb.width*cb.height)); } }Die Ausgabe des folgenden Programms lautet:
Das Volumen des Quaders beträgt: 6000
Erläuterung
Im obigen Beispiel haben wir einen Strukturquader definiert, in dem Datentypen für Länge, Breite und Höhe des Quaders gespeichert wurden. Wir haben ein anderes Klassenprogramm, in dem wir unsere Hauptmethode haben.
In der Hauptmethode initialisieren wir die 'Cuboid' -Struktur mit dem neuen Schlüsselwort. Dann haben wir das Objekt verwendet, um die in der Struktur gespeicherten Datentypen aufzurufen und Werte zuzuweisen. Dann haben wir eine Operation für die Variablen aus der Struktur ausgeführt und das Ergebnis auf der Konsole gedruckt.
Wenn Sie also eine Eigenschaft, Ereignisse oder Methoden verwenden möchten, muss die Struktur mit dem neuen Schlüsselwort initialisiert werden. Andernfalls wird ein Kompilierungsfehler angezeigt.
Aufzählungen in C #
Enum ist eine Menge von Ganzzahlkonstanten und ähnlich wie eine Struktur auch eine Entität vom Werttyp. Es wird hauptsächlich verwendet, um eine Liste von Ganzzahlen zu deklarieren, indem das Schlüsselwort 'enum' in einem Namespace, einer Klasse oder sogar einer Struktur verwendet wird. In enum geben wir jeder der Ganzzahlkonstanten einen Namen, damit wir sie mit ihren jeweiligen Namen referenzieren können.
Enum kann eine feste Anzahl von Konstanten haben. Es hilft bei der Verbesserung der Sicherheit und kann auch durchquert werden.
Funktionen von Enum
- Enum verbessert die Lesbarkeit und Wartbarkeit des Codes, indem den Konstanten aussagekräftige Namen gegeben werden.
- Enum kann nicht mit den Konstanten des Zeichenfolgentyps verwendet werden.
- Enum kann Konstanten wie int, long, short, byte usw. enthalten.
- Standardmäßig beginnt der Wert der Enum-Konstanten mit Null
Eine Aufzählung erklären
Die Syntax zum Deklarieren von Enum ist unten angegeben.
enum { list of integer constants };Alle Enum-Konstanten haben Standardwerte. Der Wert beginnt bei 0 und bewegt sich nacheinander nach oben.
Beispiel:
public enum Cuboid{ length, width, height } public class Program { public static void Main(string() args) { int l = (int)Cuboid.length; int w = (int)Cuboid.width; int h = (int)Cuboid.height; Console.WriteLine('The length is :{0}”, l); Console.WriteLine('The width is :{0}”, w); Console.WriteLine('The height is :{0}”, h); } }Die Ausgabe des folgenden Programms lautet:
Die Länge beträgt: 0
Die Breite beträgt: 1
Die Höhe beträgt: 2
Erläuterung
Wir haben mit einem ähnlichen Beispiel gearbeitet, das wir während der Struktur gelernt haben. In diesem Beispiel haben wir eine Aufzählung mit dem Namen Cuboid erstellt. Diese Aufzählung enthält drei Elemente, d. H. Länge, Breite und Höhe.
Wir haben ein anderes Klassenprogramm, in dem wir unsere Hauptmethode haben. Eine explizite Umwandlung wurde verwendet, um Variablen vom Typ 'Aufzählung' in Variablen vom Typ 'Ganzzahl' umzuwandeln. Anschließend haben wir ihre Werte in verschiedenen Variablen innerhalb der Hauptmethode gespeichert und auf der Konsole gedruckt.
Standardmäßig ist der Wert der ersten Aufzählung Null, die zweite hat 1 und so weiter. Daher haben wir beim Drucken der Werte die oben genannte Ausgabe erhalten.
Ändern des Wertes von Enum
Mit Enum können Benutzer auch den Standardstartindex der Mitglieder ändern. Sobald Sie den Startindex der Variablen geändert haben, werden die Werte der nachfolgenden Mitglieder in inkrementeller Reihenfolge aktualisiert.
Weisen Sie dem ersten Mitglied der Aufzählung, das wir in unserem vorherigen Beispiel definiert haben, einen Wert zu und sehen Sie, was passiert:
public enum Cuboid { length = 10, width, height } public class Program { public static void Main(string() args) { int l = (int)Cuboid.length; int w = (int)Cuboid.width; int h = (int)Cuboid.height; Console.WriteLine('The length is :{0}”, l); Console.WriteLine('The width is :{0}”, w); Console.WriteLine('The height is :{0}”, h); } }Die Ausgabe des folgenden Programms lautet:
Die Länge beträgt: 10
Die Breite beträgt: 11
Die Höhe beträgt: 12
Erläuterung
Wenn wir dem ersten Mitglied der Aufzählung einen Wert zugewiesen haben, werden alle nachfolgenden Mitglieder der Aufzählung mit dem Inkrement dieses Werts zugewiesen. Wie wir definiert haben, wird der erste Wert 10, der nachfolgende Wert 11 und der nächste 12.
Der Benutzer kann einen beliebigen Wert nach seiner Wahl zuweisen, und alle Mitglieder der Aufzählung werden automatisch mit dem Inkrement der benutzerdefinierten Werte zugewiesen.
Eigenschaften in C #
Eigenschaften in C # sind im Grunde das benannte Mitglied von Schnittstelle, Klassen und Struktur. Eigenschaften sind eine Erweiterung der Mitgliedsvariablen / Methode der Struktur oder Klasse. Sie werden zum Lesen, Schreiben oder Ändern des Werts der privaten Felder verwendet.
Auf Eigenschaften wird genau wie auf die Felder zugegriffen. Sie verfügen über Accessoren, mit denen die Werte abgerufen, festgelegt und berechnet werden können. Wir können auch Logik setzen, während wir Werte in den Eigenschaften festlegen. Es kann auch mit der privaten Klasse verwendet werden, die den Zugriff von außen einschränkt. Gleichzeitig kann der Benutzer Eigenschaften zum Abrufen oder Festlegen von Werten verwenden.
Was sind Accessoren?
Zugriffsberechtigte bilden die Anweisungen, mit denen eine bestimmte Eigenschaft gelesen, geschrieben oder berechnet werden kann. Die Eigenschaftserklärung kann get, set oder beides enthalten.
Beispiel:
public class Cube { private int side; //Declare a Side property of type integer public int Side{ get{ return side; } set{ side = value; } } } public class Program { public static void Main(string() args) { Cube cb = new Cube(); cb.Side = 5; Console.WriteLine('The volume of cube is :{0}', (cb.Side * cb.Side* cb.Side)); } } Wenn das obige Code-Snippet erfolgreich kompiliert und ausgeführt wurde, wird die folgende Ausgabe beobachtet.
Das Volumen des Würfels beträgt: 125
Erläuterung
Im obigen Beispiel haben wir eine Klasse 'Cube', in der wir eine 'Side' -Eigenschaft vom Typ Integer deklariert haben. Danach haben wir die Eigenschaft get und set, wo wir zurückgegeben haben, und haben den Wert für die Variablenseite bereitgestellt.
Wo sind Apks auf Android gespeichert
Wir haben eine andere Klasse 'Programm' mit der Hauptmethode, in der wir die Cube-Klasse initialisiert und den Wert für die Side-Eigenschaft angegeben haben. Anschließend haben wir das berechnete Ergebnis auf der Konsole gedruckt.
Fazit
In diesem Tutorial haben wir die Mitgliedsfunktionen der Klasse kennengelernt. Eine Mitgliedsfunktion kann für jedes Objekt der Klasse ausgeführt werden, in dem sie vorhanden ist. Wir haben auch etwas über Konstruktoren und Destruktoren gelernt.
Konstruktoren werden zum Zeitpunkt der Erstellung des Klassenobjekts automatisch initialisiert, während Destruktoren die Klasse zerstören und hauptsächlich zum Entfernen der Speicherzuordnung nach Abschluss der Ausführung verwendet werden. Konstruktoren können von zwei Typen sein, d. H. Standard und parametrisiert.
Der Destruktor akzeptiert keinen Parameter und gibt keinen Wert zurück. Sowohl der Konstruktor als auch der Destruktor haben Namen, die genau mit dem Klassennamen übereinstimmen. Wir haben auch etwas über statische Variablen und statische Klassen gelernt und wie auf sie zugegriffen werden kann, ohne Klasseninstanzen zu verwenden. Wir haben erfahren, dass eine statische Klasse nur statische Mitglieder haben kann.
Wir haben auch Strukturen oder Strukturen besprochen. Die Strukturen sind Entitäten vom Werttyp und müssen für den Zugriff initialisiert werden.
Enum und Eigenschaften von C # wurden ebenfalls diskutiert. Enum ist eine Menge benannter Integer-Konstanten. Ähnlich wie die Struktur ist es auch eine Entität vom Werttyp. Die Aufzählung hat ihre Mitglieder und jedes Mitglied hat seinen eigenen Standardwert.
Am Ende haben wir Eigenschaften besprochen, die eine Erweiterung der Mitgliedsvariablen / Methode der Struktur oder Klasse sind. Sie werden verwendet, um den Wert der privaten Felder abzurufen, festzulegen oder zu ändern.
=> Sehen Sie hier unsere komplette C # -Schulungsserie
Literatur-Empfehlungen
- Statisch In C ++
- Vererbung in C ++
- Klassen und Objekte in C ++
- Verwendung der Selenium Select-Klasse zur Behandlung von Dropdown-Elementen auf einer Webseite - Selenium Tutorial # 13
- Laufzeitpolymorphismus In C ++
- Friend-Funktionen in C ++
- Verspotten privater, statischer und nichtiger Methoden mit Mockito
- C # -Klassen und -Objekte: Ein ausführliches Tutorial mit Beispielen