Heim >类库下载 >java类库 >Initialisierungssequenz von Java-Klassen

Initialisierungssequenz von Java-Klassen

高洛峰
高洛峰Original
2016-11-03 13:17:371647Durchsuche

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:

Initialisierungssequenz von Java-Klassen

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 -          

Familienmitgliedsvariablen

Die 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.

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:Letztes Java-ArgumentNächster Artikel:Letztes Java-Argument