In „Eingehende Analyse basierend auf der Rolle interner Java-Klassen“ können Sie einige Dinge über interne Java-Klassen verstehen, aber es gibt immer noch einige Stellen in internen Klassen, die unserer sorgfältigen Untersuchung würdig sind ...
Nachfolgend finden Sie einige Dinge über interne Java-Klassen, die ich zusammengefasst habe und mit Ihnen teile....
1: Statische innere Klassen können statische Mitglieder haben, nicht statische innere Klassen können jedoch keine statischen Mitglieder haben.
Wie ist das zu verstehen?
Schauen Sie sich den folgenden Code an:
öffentlicher Klassentest {
private int Zahl = 1;
// Nicht statische innere Klassen können nicht statische Mitglieder haben
private Klasse InnerTest {
// Fehler Nicht statische innere Klassen können keine statischen Mitglieder haben
// private static int inNumber = 2;
private int inNumber = 2;
public InnerTest() {
setNumber(2);
inNumber = inNumber + Zahl;
System.out.println("innerTest---" + inNumber);
}
}
//Private Testmethode
private void setNumber(int number) {
this.number = Zahl;
}
//Konstrukteur
öffentlicher Test() {
InnerTest in = new InnerTest();
System.out.println("test");
}
public static void main(String[] args) {
Test test = neuer Test();
// innerTest---4
// prüfen
}
}
öffentlicher Klassentest {
private statische int Zahl = 1;
privater Stringname = „test“;
// statische innere Klasse
private statische Klasse InnerTest {
// Statische innere Klassen können nicht statische Mitglieder haben
private int inNumber = 2;
public InnerTest() {
//Statische innere Klassen können auf statische Mitglieder äußerer Klassen zugreifen
setNumber(2);
inNumber = inNumber + Zahl;
System.out.println("innerTest---" + inNumber);
//Fehler statische innere Klasse kann nicht auf nicht statische Mitglieder der äußeren Klasse zugreifen
//System.out.println(name);
}
}
//Statische private Testmethode
private static void setNumber(int n) {
Zahl = n;
}
//Konstrukteur
öffentlicher Test() {
InnerTest in = new InnerTest();
System.out.println("test");
}
public static void main(String[] args) {
Test test = neuer Test();
// innerTest---4
// prüfen
}
}
Ist es leicht zu verstehen...
Zusammenfassend: