Wenn wir in Java ein neues Objekt erstellen, werden die Mitglieder, Initialisierungsblöcke und Konstruktoren im Objekt in einer bestimmten Reihenfolge geladen. Siehe das Bild unten:
1. Initialisierungssequenz unter einer einzelnen Klasse (keine Basisklasse):
public class Parent {
static String staticStr = "Statische Variable der übergeordneten Klasse";
private String str = „Mitgliedsvariable der übergeordneten Klasse“;
static {
System.out.println(staticStr);
System.out .println("Parent class static initialization block");
}
{
System.out.println(str);
System. out.println("Initialisierungsblock der übergeordneten Klasse");
}
public Parent() {
System.out .println("Parent Klassenkonstruktion");
}
public static void main(String[] args) {
new Parent() ;
//new Parent();
}
}
Ausgabe: Statische Variable der übergeordneten Klasse
Statischer Initialisierungsblock der übergeordneten Klasse
. Als Ergebnis wird der folgende Inhalt hinzugefügt: 🎜>Reihenfolge einzelner Klassen: ① Statisch (Mitglieder, Blöcke) > Nicht statisch (Mitglieder, Blöcke) > Konstruktion
② Die Reihenfolge der Mitglieder und Blöcke hängt davon ab auf „ihre Position, wenn sie in der Klasse definiert sind, wer zuerst kommt, wer zuerst kommt“ wird initialisiert.
③ Statische Mitglieder oder Blöcke gehören zu Klassen, daher werden sie zuerst initialisiert und werden nur einmal initialisiert.
④ Die Struktur wird zuletzt ausgeführt.
2. Initialisierungssequenz geerbter Klassen
class SubClass erweitert Parent {
static String staticStr = "Subclass static Variable ";
private String str = "Subclass member variable";
static {
System.out.println(staticStr);
System.out.println("Subclass static initialization block");
}
{
System.out(str );
System.out.println("Subclass initialization block");
}
public SubClass() {
System.out.println("Subclass Construction");
}
public static void main(String[] args) {
System .out.println("subclass main method");
new SubClass();
}
}
Ausgabe:Statische Variable der übergeordneten Klasse
out out out out out out out Through out out out out out out out out who why initiating in -
FamilienmitgliedsvariablenDie Initialisierung des übergeordnete Klasse
Die Struktur der übergeordneten Klasse
Mitgliedsvariablen der Unterklasse
Initialisierungsblock des Untertyps
' ' ' out to ' ' s to go . Struktur der übergeordneten Klasse > Nicht statische Unterklasse (Mitglieder, Blöcke) > Struktur der Unterklasse ②Ähnlich ist die Reihenfolge der Mitglieder und Blöcke dieselbe wie in einer einzelnen Klasse ③Es gibt ein übergeordnetes Element, bevor es ein untergeordnetes Element gibt, aber die statischen Elemente (Mitglieder und Blöcke) der Unterklasse gehen den nicht statischen Elementen (Elemente und Blöcke) der übergeordneten Klasse voraus, da statische Elemente zur Klasse gehören -Statisch und Konstruktor, natürlich wird die gesamte übergeordnete Klasse geladen, und dann wird die Unterklasse geladen.