Heim >Java >javaLernprogramm >Innere Klasse in Java

Innere Klasse in Java

WBOY
WBOYOriginal
2024-08-30 15:56:591013Durchsuche

Eine innere Klasse in einem Java-Programm ist nichts anderes als die Klasse, die in einer bereits funktionierenden Klasse deklariert und verwendet wird, um alle Funktionen und den Zugriff der Mitglieder auf die äußere Klasse zu nutzen. Dies wird normalerweise verwendet, wenn das Codierungsmuster des Programms besser organisiert werden muss und gleichzeitig die Länge des Codes reduziert werden muss. Es gibt drei Arten von inneren Klassen: innere Mitgliedsklassen, anonyme innere Klassen und lokale innere Klassen. Die Hauptvorteile der Verwendung der inneren Klasse in einem Java-Programmausschnitt sind, dass die innere Klasse eine bessere Optimierung und Organisation des Codes ermöglicht, die Lesbarkeit erhöht und der Wartungsaufwand für diese Art von Klasse recht gering ist.

Typen innerer Klassen in Java

Innere Klassen in Java sind im Grunde die Klassen, die nicht statisch sind und innerhalb einer anderen Klasse deklariert werden. Die innere Klasse ist also ein Mitglied der äußeren Klasse. In Java gibt es drei Arten innerer Klassen:

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

  • Mitglied, innere Klasse
  • Lokale innere Klassen
  • Anonyme innere Klassen

Bitte beachten Sie, dass die innere Klasse eine Art verschachtelter Klasse ist, die nicht statisch ist. Lassen Sie uns nacheinander verschiedene Arten innerer Klassen in Java besprechen.

1. Mitglied der inneren Klasse

In diesem Fall müssen Sie lediglich eine Klasse innerhalb ihrer äußeren Klasse deklarieren. Die Klasse darf sich jedoch nicht innerhalb der Methode der äußeren Klasse befinden. Es muss außerhalb der Methode der äußeren Klasse definiert werden. Die innere Klasse muss ein nicht statischer Typ sein. Ein Objekt eines inneren Klassentyps kann auf die Variable der äußeren Klasse zugreifen.

2. Lokale innere Klassen

In diesem Fall ist es auch nur erforderlich, eine Klasse innerhalb ihrer äußeren Klasse zu deklarieren. Die Klasse muss sich jedoch innerhalb der Methode der äußeren Klasse befinden. Es muss innerhalb der Methode der äußeren Klasse definiert werden. Die innere Klasse muss ein nicht statischer Typ sein. Das Objekt des inneren Klassentyps kann auf die Variable der äußeren Klasse zugreifen. Da diese Klasse innerhalb einer Methode der äußeren Klasse deklariert wird, ist ihr Zugriff ebenfalls eingeschränkt, ähnlich wie bei lokalen Variablen. Wenn Sie die Funktion der inneren Klasse aufrufen möchten, müssen Sie diese innerhalb der Funktion instanziieren.

Zu beachtende Punkte für die lokale innere Klasse:

  • Der Spezifizierer der lokalen Variablen kann nicht privat, öffentlich oder geschützt sein.
  • Man kann die lokale innere Klasse nicht außerhalb der Funktion aufrufen.
  • Bis zur JDK-Version 1.7 kann die lokale innere Klasse nicht auf nicht endgültige lokale Variablen zugreifen. Seit JDK-Version 1.8 kann jedoch auf eine nicht finale lokale Variable in der lokalen inneren Klasse zugegriffen werden.

3. Anonyme innere Klassen

Anonym ist, wie der Name schon sagt, ein Anruf ohne Namen. Aber wie ist das möglich? Tatsächlich handelt es sich um eine Art innere Klasse, in der wir gleichzeitig Deklaration und Instanziierung (Mittel, Objekterstellung) durchführen. Wann immer Sie eine Methode einer Klasse überschreiben möchten, müssen Sie möglicherweise eine anonyme innere Klasse verwenden. Da eine anonyme innere Klasse keinen Namen hat, können wir keinen anonymen inneren Klassenkonstruktor erstellen. Beachten Sie außerdem, dass Sie nur zum Zeitpunkt ihrer Definition auf anonyme innere Klassen zugreifen können.

Anonyme innere Klassen können auf zwei Arten erstellt werden.

  • Als Unterklasse eines bestimmten Typs.
  • Als Implementierer der jeweiligen Schnittstelle.

Beispiele für die innere Klasse in Java

Im Folgenden besprechen wir einige Codebeispiele der Java Inner Class:

Beispiel Nr. 1: Mitglied, innere Klasse

In diesem Beispiel zeigen wir ein Beispiel für die innere Klasse eines Mitglieds. In diesem einfachen Beispiel deklarieren wir eine Klasse innerhalb einer äußeren Klasse. Innerhalb von „OuterClass“ haben wir ein privates Datenelement namens „num1“ und eine innere Klasse „InnerClass“. Wir können über ein Objekt vom Typ „InnerClass“ auf die private Variable „num1“ äußerer Aufrufe innerhalb der inneren Klasse zugreifen. Auf diese Weise nutzen wir die Verwendung der inneren Klasse, bei der über eine Methode der inneren Klasse auf ein privates Mitglied äußerer Aufrufe zugegriffen werden kann.

Code:

class OuterClass{
private int num1=36;
class InnerClass{
void shw(){
System.out.println("Member Inner Class");
}
}
}
public class DemoOfMemberInnerClass{
public static void main(String args[]){
OuterClass oc=new OuterClass();
OuterClass.InnerClass ic=oc.new InnerClass();
ic.shw();
}
}

Ausgabe:

Innere Klasse in Java

Beispiel #2: Anonyme innere Klasse

In diesem Beispiel demonstrieren wir ein Beispiel der lokalen inneren Klasse. Hier besteht unser Hauptziel darin, die Funktionalität einer Methode der äußeren Klasse zu überschreiben. Wie der Name schon sagt, ist der Klassenname explizit nicht bekannt und wird daher als anonyme innere Klasse bezeichnet. Hier erfolgen sowohl die Deklaration als auch die Instanziierung der inneren Klasse zu einem bestimmten Zeitpunkt, weshalb sie als anonyme innere Klasse bezeichnet wird.

Code:

abstract class Cat{
abstract void drink();
}
public class AnonymousInnerClassDemo{
public static void main(String args[]){
Cat ct=new Cat(){ //anonymous inner class
void drink(){
System.out.println("kitty loves milk");
}
};
ct.drink();
}
}

Ausgabe:

Innere Klasse in Java

Example #3: Method Local Inner Class

In this example, we will demonstrate an example of a method local inner class. In this simple example where we declare a class inside the method “display()” of the outer class “OuterClassDemo”. After that, we can access the method by an object of the outer class.

Code:

public class OuterClassDemo{
private int num1=36;//instance variable
void display(){
class LocalInnerClass{ // local inner class inside the method of outer class
void shw(){
System.out.println(num1);
}
}
LocalInnerClass li=new LocalInnerClass();
li.shw();
}
public static void main(String args[]){
OuterClassDemo obj=new OuterClassDemo();
obj.display();
}
}

Output:

Innere Klasse in Java

Advantages

Here are some of the advantages of the java inner class, which are explained below:

  • The advantage of an inner class is that it can access all of the members that means functions and variables of the outer class.
  • This feature in Java facilitates us to logically organize our codes based on functionality, increasing code readability, and maintenance. It also facilitates the optimization of your code.
  • An inner class can access all of the private members (which means both data and methods) of its outer class.

Conclusion

This concludes our learning of the topic “Inner Class in Java”. An inner class is a very interesting feature in java where you can use a member of the outer class by the object of its inner class. Write yourself the codes mentioned in the above examples in the java compiler and verify the output. Learning of codes will be incomplete if you will not write code by yourself.

Das obige ist der detaillierte Inhalt vonInnere 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:Empfangen von E-Mails in JavaNächster Artikel:Empfangen von E-Mails in Java