Statische innere Klassen sind verschachtelte Klassen. Diese Klasse ist als statisches Mitglied unter jeder Klasse vorhanden, die als äußere Klasse fungiert. Es ist nicht erforderlich, ein Klassenobjekt zu erstellen, um Mitgliedsfunktionen und -variablen zu verwenden. Es kann mit Hilfe der äußeren Klasse instanziiert werden. Außerdem besteht die Einschränkung, dass nicht wie statische Variablen auf nicht-statische Mitgliedsfunktionen und Mitgliedsvariablen zugegriffen werden kann.
Syntax:
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Die Syntax der statischen verschachtelten JAVA-Klasse ist unten angegeben. Hier brauchen wir eine äußere Klasse, die als Dachklasse für die innere Klasse fungiert. Die innere Klasse liegt innerhalb der äußeren Klassenschleife. Die innere Klasse hat vor der Klasse ein „statisches“ Schlüsselwort, damit die innere Klasse als statische innere oder verschachtelte statische Klasse erkannt werden kann.
class outerclass { static class Innerclass { //Member variables //Member functions } }
Statisch verschachtelte JAVA-Klassen werden mit dem Schlüsselwort „static“ vor der Klasse zum Zeitpunkt der Klassendefinition deklariert. Das Schlüsselwort static wird auch mit Methoden und Variablen verwendet, um den Gültigkeitsbereich von Variablen und Methoden im gesamten Programm beizubehalten, ohne dass diese überschrieben werden. Die gleiche Funktion kann auf Klassenebene verwendet werden, jedoch mit der Ausnahme, dass es sich um eine innere Klasse handeln muss. Die Funktionsweise einer verschachtelten statischen Klasse lässt sich anhand der im nächsten Abschnitt erläuterten Beispiele gut verstehen.
Obwohl es einige wichtige Punkte in Bezug auf statisch verschachtelte JAVA-Klassen zu beachten gibt:
Einige Beispiele sowie deren Erklärung finden Sie weiter unten, damit Sie sie sich ansehen können.
Diese Beispiele demonstrieren die Verwendung und das Verständnis statischer Schlüsselwörter im Datenfluss während der Programmverarbeitung.
Code:
public class Test1 { static int vnumber=25; static class Innerclass { void printmsg () { System.out.println ("We are running this proram to undertsand the implementation of static keyword under JAVA nested class. The value of number passed here is "+vnumber);} } public static void main(String args[] ) { Test1.Innerclass object=new Test1.Innerclass(); object.printmsg(); } }
Ausgabe:
Erklärung: Statische Klassen werden nicht direkt instanziiert, daher wird in diesem Beispiel die statische Klasse mit Hilfe der äußeren Klasse instanziiert. Die äußere Klasse „Test1“ wird mit einer statischen Variablen namens „vnumber“ und einer statischen Klasse namens „Innerclass“ definiert. Die Methode ist unter der inneren Klasse namens „printmsg()“ definiert. Diese Funktion enthält einen String und eine Variable, die in der äußeren Klasse definiert ist.
Wenn ein Programm ausgeführt wird, wird zuerst die Hauptfunktion aufgerufen. Die äußere Klasse wird zusammen mit der inneren Klasse mit einem Punktoperator zur Instanziierung verwendet. Die Instanz mit dem Namen „object“ wird aufgerufen. Das Objekt wird dann verwendet, um die Funktion printmsg() aufzurufen. Die Funktion printms() holt die darin gespeicherte Zeichenfolge und eine Variable mit dem Wert 25, die aus der Deklaration der statischen Variablen der äußeren Klasse stammt. Daher haben wir die Klasseninstanziierungsmethode verwendet, um die Verwendung der statisch verschachtelten Klasse zu demonstrieren. Hierbei ist zu beachten, dass die statische innere Klasse und die statische Variable verwendet werden, die Funktion printmsg() jedoch nicht statisch ist. Aus diesem Grund haben wir im obigen Beispiel instanziiert. Wenn diese Funktion statisch gewesen wäre, hätten wir sie anders verwendet.
Code:
public class Test2 { static int vnumber=30; static class Innerclass { static void printmsg() { System.out.println("We are running this proram to undertsand the implementation of static keyword under JAVA nested class. The value of number passed here is : "+vnumber);} } public static void main(String args[]) { Test2.Innerclass.printmsg(); } }
Ausgabe:
Erklärung: Hier demonstrieren wir ein Beispiel einer statisch verschachtelten Funktion, bei der die Variable, die Klasse und die Methode alle statisch definiert sind. Dies geschieht, um den Methodenaufruf direkt zu demonstrieren, anstatt ein Objekt aufzurufen, um eine Methode aufzurufen. Da überall dort, wo das Schlüsselwort „static“ verwendet wird, keine Notwendigkeit besteht, ein Objekt zu erstellen. Man kann es direkt verwenden. Hier wird also eine äußere Klasse namens „test2“ mit einer statischen Variablen namens „vnumber“ und einer inneren Klasse namens „innerclass“ erstellt. Innerclass wird mit einem statischen Schlüsselwort angehängt, um die Verwendung der statischen verschachtelten Klasse zu demonstrieren. Die innere Klasse verfügt über eine statische Memberfunktion mit ihrem String und einer Variablen.
Die Hauptfunktion wird aufgerufen, während das Programm ausgeführt wird. Äußere Klasse, innere Klasse und eine Methode werden direkt über einen Punktoperator aufgerufen. Hier haben wir kein Objekt wie im vorherigen Beispiel erstellt, da die Methode selbst als statisch deklariert ist.
Statisch verschachtelte Klassen können nützlich sein, wenn wir die Verwendung von Mitgliedsfunktionen einer äußeren Funktion in einer inneren Klasse einschränken möchten. Dies ist möglich, da eine innere statische Klasse nur auf die statischen Mitglieder der äußeren Klasse zugreifen kann, während für andere nicht statische Mitglieder der äußeren Klasse weiterhin ein Objekt erstellt werden muss, wenn die innere Klasse sie verwenden möchte. Dies wird verwendet, wenn der Programmierer nach einer gewissen Sicherheit sucht, die er in seinen Code übernehmen kann. Das Schlüsselwort static stellt sicher, dass Daten nicht leicht manipuliert werden können. Dies fördert die Datensicherheit und Zuverlässigkeit der Anwendung.
Das obige ist der detaillierte Inhalt vonStatische verschachtelte Java-Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!