91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中初始化對象的方法

發布時間:2020-06-25 17:26:36 來源:億速云 閱讀:174 作者:Leah 欄目:編程語言

本篇文章為大家展示了java中初始化對象的方法,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

第一步:加載該類,一個java對象在初始化前會進行類加載,在JVM中生成Class對象。加載一個類會進行如下操作,下面給出遞歸描述。

如果該類有父類,則先加載其父類。    

i 初始化該類靜態成員

ii 執行該類靜態代碼塊

第二步:創建對象,如果該類有父類,則創建對象時會先創建其父類的對象,外層包裹子類的屬性和方法,然后返回子類的引用,下面給出遞歸描述。

如果該類有父類,先創建父類的對象。

i 初始化該類普通成員

ii 執行普通代碼塊

iii 調用該類構造方法

示例:

該類對象作為成員變量

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

父類

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()");
    }
}

子類

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()");
    }
}

下面測試類的加載過程,我們不創建對象,而是直接加載類,并且是加載子類

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();
    }
}

測試結果:

java中初始化對象的方法

測試結果符合上面所寫的加載類的規則,先初始化父類靜態成員,再執行父類靜態塊,然后初始化子類靜態成員,最后執行子類靜態塊。我們可以看到靜態成員確實在類加載時初始化。

注意:類的加載只進行一次,之后創建對象將不再進行類加載,這也是為什么靜態代碼塊只執行一次的原因。

上述內容就是java中初始化對象的方法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寿阳县| 吉木乃县| 平安县| 深圳市| 宿州市| 永新县| 剑川县| 昌邑市| 郧西县| 磐石市| 武功县| 嘉善县| 区。| 聂拉木县| 竹溪县| 旬阳县| 凌海市| 南宁市| 那曲县| 辉南县| 葫芦岛市| 双峰县| 岑巩县| 陕西省| 搜索| 彩票| 浦城县| 洪湖市| 玉环县| 德兴市| 大田县| 丹东市| 肃北| 达孜县| 明星| 宣恩县| 兴山县| 东宁县| 军事| 资中县| 高密市|