Heim  >  Artikel  >  Java  >  So initialisieren Sie Objekte in Java

So initialisieren Sie Objekte in Java

王林
王林Original
2019-11-20 16:33:554381Durchsuche

So initialisieren Sie Objekte in Java

Schritt eins: Laden Sie die Klasse. Vor der Initialisierung wird ein Java-Objekt geladen und in der JVM ein Klassenobjekt generiert. Durch das Laden einer Klasse werden die folgenden Vorgänge ausgeführt. Die rekursive Beschreibung finden Sie unten.

Wenn die Klasse eine übergeordnete Klasse hat, wird deren übergeordnete Klasse zuerst geladen.

i Initialisieren Sie die statischen Mitglieder dieser Klasse

ii Führen Sie den statischen Codeblock dieser Klasse aus

Schritt 2: Erstellen Sie ein Objekt. Wenn die Klasse eine übergeordnete Klasse hat, wird beim Erstellen des Objekts zuerst das Objekt der übergeordneten Klasse erstellt, die Eigenschaften und Methoden der Unterklasse werden in die äußere Ebene eingeschlossen und dann die Referenz der Unterklasse wird zurückgegeben. Die rekursive Beschreibung ist unten angegeben.

Wenn die Klasse eine übergeordnete Klasse hat, erstellen Sie zuerst das Objekt der übergeordneten Klasse.

i Gemeinsame Mitglieder dieser Klasse initialisieren

ii Gemeinsamen Codeblock ausführen

iii Aufruf diese Klassenkonstruktionsmethode

Beispiel:

Das Klassenobjekt wird als Mitgliedsvariable verwendet

public class Info{    public Info(String s) {
        System.out.println(s);
    }
}

Übergeordnete Klasse

public class Parent {
    public static Info info = new Info("Parent static member");      //静态成员
    public Info info2 = new Info("Parent common member");            //普通成员
    static {                                                         //静态代码块
        System.out.println("parent static block");
    }
    {                                                                //普通代码块
        System.out.println("parent common block");
    }
    public Parent() {                                                //父类构造方法
        System.out.println("Parent.Parent()");
    }
}

Unterklasse

public class Child extends Parent{
    public static Info info = new Info("Child static member");       //静态成员
    public Info info2 = new Info("Child common member");             //普通成员
    static {                                                         //静态代码块
        System.out.println("Child static block");
    }
    {                                                                //普通代码块
        System.out.println("Child  common block");
    }
    public Child() {                                                 //子类构造方法
        System.out.println("Child.Child()");
    }
}

Im folgenden Testklassenladevorgang erstellen wir keine Objekte, sondern laden die Klasse direkt und laden die Unterklasse

public class InitObjectTest{
    public static void main(String[] args) {
        try{
            //Class.forName("Parent");
            Class.forName("Child");
        }catch(Exception e){
            
        }
        //System.out.println("=============== now , we create an Object below ===========");
        //new Parent();
    }
}

Testergebnisse:

So initialisieren Sie Objekte in Java

Die Testergebnisse entsprechen den oben beschriebenen Regeln zum Laden von Klassen. Initialisieren Sie zuerst die statischen Mitglieder der übergeordneten Klasse, führen Sie dann den statischen Block der übergeordneten Klasse aus und initialisieren Sie dann die statischen Mitglieder der Unterklasse. und schließlich den statischen Block der Unterklasse ausführen. Wir können sehen, dass statische Mitglieder tatsächlich initialisiert werden, wenn die Klasse geladen wird.

Hinweis: Das Laden der Klasse erfolgt nur einmal. Danach wird die Klasse beim Erstellen des Objekts nicht mehr geladen. Deshalb wird der statische Codeblock nur einmal ausgeführt .

Empfohlenes Tutorial: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonSo initialisieren Sie Objekte 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