Heim >Java >javaLernprogramm >Verschachtelte Klasse in Java

Verschachtelte Klasse in Java

WBOY
WBOYOriginal
2024-08-30 16:00:19741Durchsuche

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

Kategorien verschachtelter Klassen in Java

Eine verschachtelte Klasse ist in zwei Kategorien unterteilt:

  1. Statische verschachtelte Klasse: Wir bezeichnen eine verschachtelte Klasse, die mit dem Schlüsselwort „static“ deklariert wurde, als statisch verschachtelte Klasse. Auf statische verschachtelte Klassen kann durch Verweis auf die äußere Klasse zugegriffen werden. Die verschachtelte Klasse, die eine statische Klasse hat, kann nicht auf die nichtstatischen Variablen und Methoden der äußeren Klasse zugreifen.
  2. Innere Klasse: Eine nicht statische verschachtelte Klasse ist eine innere Klasse, die nicht statisch deklariert ist. Keine statisch verschachtelten Klassen hätten Zugriff auf alle statischen und nicht statischen Variablen und Methoden, selbst wenn sie als privat deklariert wären. Die innere Klasse hat auch zwei Typen.
  • Lokale innere Klassen
  • Anonyme innere Klassen

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 {
....
}
}

Verwendung einer verschachtelten Klasse in Java

In der Programmierwelt spielt die Nested-Klasse eine wichtige Rolle, wie unten angegeben:

  • Das Verschachteln der Klasse ist wie das Gruppieren von Klassen in einem anderen Klassenbereich. Sie können verschachtelte Klassen nicht an anderen Stellen verwenden.
  • Führt zu Lesbarkeit und Wartbarkeit: Das Verschachteln von Klassen sorgt für eine bessere Lesbarkeit des Codes und ist einfacher zu warten, da es keine Auswirkungen auf die anderen Klassen hat.
  • Reduzierter Code: Durch die Verwendung verschachtelter Klassen werden Codezeilen reduziert, was zu einer Optimierung führt.
  • Erhöht die Kapselung: In verschachtelten Klassen haben innere Klassen Zugriff auf das Mitglied der umschließenden äußeren Klasse. Gleichzeitig kann die äußere Klasse nicht direkt auf Mitglieder der inneren Klasse zugreifen. Darüber hinaus ist die innere Klasse für externe Programme nicht sichtbar oder zugänglich.

Beispiele für verschachtelte Klassen in Java

Im Folgenden finden Sie Beispiele für verschachtelte Klassen in Java:

Beispiel #1

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:

Verschachtelte Klasse in Java

Beispiel #2

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:

Verschachtelte Klasse in Java

Beispiel #3

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:

Verschachtelte Klasse in Java

Fazit

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!

Stellungnahme:
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
Vorheriger Artikel:Wrapper-Klasse in JavaNächster Artikel:Wrapper-Klasse in Java