Java-interne Klassen werden in 4 Typen unterteilt:
1) Statische interne Klasse: Eine durch Statik geänderte Klasse wird als statische Klasse bezeichnet. Das Einfügen einer statischen Klasse in eine Klasse wird als statische interne Klasse bezeichnet
Funktionen: Kann auf die Außenwelt zugreifen: statische Methoden/statische Eigenschaften, kann nicht auf Instanzressourcen zugreifen
Fall:
import inner.Foo.Koo;//Achten Sie darauf, die zu importieren Koo static inner class
public class Demo9 {
public static void main(String[] args) {
Koo koo = new Koo();
koo.add ();
}
}
class Foo{
int a = 12;//Instanzvariable
static int aa =16;
public static void show(){ System.out.println("static method");}
//static inner class
static class Koo {
public void add(){
// System.out.println(a); Statische innere Klassen können nicht auf Instanzressourcen (Variablen) zugreifen
System .out. println(aa);
show();//Statische innere Klassen können auf statische Eigenschaften und Methoden der Außenwelt zugreifen
}
}
}
2) Innere Klasse des Mitglieds: Innerhalb einer Klasse wird eine Klasse ohne statische Änderung direkt definiert. Beim Erstellen eines inneren Klassenobjekts des Mitglieds muss zuerst die äußere Klasse erstellt werden.
Funktionen: Mitglied der inneren Klasse, kann auf externe Eigenschaften und Methoden zugreifen
Fall:
import inner.Foo1.Koo1;
öffentliche Klasse Demo10 {
public static void main(String[] args) {
//Koo1 koo1 = new Koo1(); Um eine innere Mitgliedsklasse zu erstellen, müssen Sie zuerst ein äußeres Klassenobjekt erstellen
Foo1 foo1 = new Foo1();
//Merken (schriftlicher Test)
Koo1 koo1 = foo1.new Koo1();
koo1.show ( );
}
}
class Foo1{
int a =12;
static int aa = 16;
class Koo1{
void show(){
System.out.println(a+" , "+aa);
}
}
}
3) Lokale interne Klassen: selten verwendet, gekennzeichnet durch die Definition einer Klasse innerhalb einer Methode (selten verwendet in der Unternehmensentwicklung)
Funktionen: Lokale innere Klassen , wenn auf externe Variablen verwiesen wird, müssen die Variablen mit final geändert werden
Fall:
public class Demo11 {
public static void main(String[ ] args) {
final int a = 12;
final int b = 13;
class Foo2{
int c = 16;
public int add(){
//Wenn in einer lokalen inneren Klasse auf eine externe Variable verwiesen wird, muss die Variable mit final geändert werden
return a+b+c;
}
}
Foo2 foo2 = new Foo2();
System.out.println(foo2.add());
}
}
4) Anonyme innere Klasse: eine Vererbung der ursprünglichen Klasse
Funktionen: wird in Kombination mit Schnittstellen/abstrakten Klassen verwendet
z. B. neuer Klassenname /Schnittstellenname {
Override-Methode
};
Fall:
öffentliche Klasse Demo1 {
public static void main(String[] args) {
Koo koo = new Koo(){
// Sie können die Methode
public String toString überschreiben () {
return „Ein Koo-Objekt wird generiert“;
}
// Neue Methoden können nicht in anonymen inneren Klassen erstellt werden
// public void show(){
// System.out.println("liu");
// }
};
System. out.println(koo);
// koo.show();
}
}
class Koo{
}
Weitere Artikel zu internen Java-Klassen und anonymen internen Klassen finden Sie auf der chinesischen PHP-Website!