Eine verschachtelte Klasse bezieht sich auf eine Klasse, die sich innerhalb einer anderen Klasse befindet. Mit Java können wir verschachtelte Klassen in Java erstellen. Eine verschachtelte Klasse ist eines der Mitglieder ihrer äußeren Klasse. Es kann auch als öffentlich, privat, geschützt oder standardmäßig deklariert werden. Die verschachtelte Klasse hat Zugriff auf das andere Mitglied der äußeren Klasse, umgekehrt ist dies nicht möglich. Dies bedeutet, dass die äußere Klasse keinen Zugriff auf ein verschachteltes Klassenmitglied hat, da die verschachtelte Klasse ein Mitglied ihrer umschließenden äußeren Klasse ist. Daher wird Punkt (.) verwendet, um auf die verschachtelte Klasse und ihre Mitglieder zuzugreifen. Die verschachtelte Klasse hat keine statischen Schlüsselwörter.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Eine verschachtelte Klasse ist in zwei Kategorien unterteilt:
Syntax:
In der folgenden Syntax verfügt OuterClass über eine interne Klasse InnerClass, die als Nested-Klasse bekannt ist.
//Outer class class OuterClass { //Inner class as a nested class class InnerClass { .... } }
In der Programmierwelt spielt die Nested-Klasse eine wichtige Rolle, wie unten angegeben:
Im Folgenden finden Sie Beispiele für verschachtelte Klassen in Java:
In diesem Beispiel können Sie die Instanziierung innerer Klassen beobachten, indem Sie auf die äußere Klasse verweisen.
Code:
// Outer class which contains nested class class Engine{ static double fuel = 20.0; //static nested class static class Ignition{ void showFuelSpend() { System.out.println("Fuel Spend = " + fuel + " Ltrs"); } } } //class uses nested class inside it public class NestedClassExample{ public static void main(String[] args) { //creating object of the nested class by referencing parent class Engine.Ignition engIgnitObj = new Engine.Ignition(); //calling method of the nested class engIgnitObj.showFuelSpend(); } <u>}</u>
Ausgabe:
In diesem Beispiel können wir sehen, wie die innere Klasse instanziiert werden kann. Sie benötigen eine Instanz der inneren Klasse, um eine Instanz der inneren Klasse zu erstellen. Nachdem eine Instanz der Outer-Klasse erstellt wurde, ist es möglich, eine Instanz der darin verschachtelten Klasse zu erstellen.
Code:
//Outer class class Volume{ double x, y, z; Volume(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } // Nested inner class class Measurement{ //method to calculate the total area void totalArea(double i, double j) { System.out.println("\nArea for the provided container is " + (i * j)); } //method to calculate the total volume void totalVolume(double i, double j, double k) { System.out.println("\nVolume for the provided container is " + (i * j * k)); } } } public class NestedClassCalcExample { public static void main(String[] args) { //passing here all the parameter to constructor Volume volObj = new Volume(30.0, 25, 18.0); Volume.Measurement volMeasureObj = volObj.new Measurement(); // calculating total area volMeasureObj.totalArea(volObj.x, volObj.y); // calculating total volume volMeasureObj.totalVolume(volObj.x, volObj.y, volObj.z); } }
Ausgabe:
Dieses Beispiel zeigt, wie die Instanziierung eines verschachtelten Klassenobjekts innerhalb einer Instanz der äußeren Klasse erfolgt.
Code:
//outer class class Electronic{ String circuitName, String circuitType; double circuitCost; //constructor of outer class Electronic(String name, String type, double cost) { this.circuitName = name; this.circuitType = type; this.circuitCost = cost; } String getCircuitName() { return this.circuitName; } //nested class class Circuit{ String circuitType; double circuitCost; void setCircuitType() { this.circuitType = "Transistor"; this.circuitCost = 430.0; } //get circuit type using this method String getCircuitType(){ return this.circuitType; } //get circuit cost using this method double getCircuitCost(){ return this.circuitCost; } } } public class Product{ public static void main(String[] args) { Electronic elObj = new Electronic("Amplifier", "Integrated", 375.0); Electronic.Circuit circuit = elObj.new Circuit(); //printing here the values before reset it System.out.println("\nCircuit Name : " + elObj.circuitName); System.out.println("\nCircuit Type : " + elObj.circuitType); System.out.println("\nCircuit Cost : " + elObj.circuitCost); //resetting some value circuit.setCircuitType(); //printing here the values before reset it System.out.println("\n\nCircuit Name : " + elObj.getCircuitName()); System.out.println("\nCircuit Type : " + circuit.getCircuitType()); System.out.println("\nCircuit Cost : " + circuit.getCircuitCost()); } }
Ausgabe:
Im oben genannten Artikel haben wir besprochen, wie wichtig die Nested-Klasse in Java ist. Es empfiehlt sich, die Verschachtelung von Klassen zu nutzen. Der obige Artikel beschreibt auch die Benutzerfreundlichkeit der Nested-Klasse.
Das obige ist der detaillierte Inhalt vonVerschachtelte Klasse in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!