真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

一文讓你徹底搞懂Java程序的初始化順序

使用場景

在Java程序中,當實例化對象時,對象的所在類的所有成員變量首先要進行初始化,只有當所有類成員完成初始化后,才會調用對象所在類的構造函數(shù)創(chuàng)建對象。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于成都網站制作、網站建設、蘭陵網絡推廣、微信小程序開發(fā)、蘭陵網絡營銷、蘭陵企業(yè)策劃、蘭陵品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供蘭陵建站搭建服務,24小時服務熱線:13518219792,官方網址:www.cdcxhl.com

原則

  1. 變量優(yōu)先于塊、靜態(tài)優(yōu)先于非靜態(tài)。
  2. 父類優(yōu)先于派生類初始化。
  3. 按照成員變量定義的順序來進行初始化,即使變量定義散布于方法定義之中,它們仍然在任何方法(包括構造器)被調用前初始化。

初始化順序

  • 父類靜態(tài)變量
  • 父類靜態(tài)代碼塊
  • 子類靜態(tài)變量
  • 子類靜態(tài)代碼塊
  • 父類非靜態(tài)變量
  • 父類非靜態(tài)代碼塊
  • 父類構造函數(shù)
  • 子類非靜態(tài)變量
  • 子類非靜態(tài)代碼塊
  • 子類構造函數(shù)

初始化示例代碼


class Base {

    public Base() {
        System.out.println("父類構造方法");
    }

    String b = "父類非靜態(tài)變量";
    {
        System.out.println(b);
        System.out.println("父類非靜態(tài)代碼塊");
    }

    static String a = "父類靜態(tài)變量";

    static {
        System.out.println(a);
        System.out.println("父類靜態(tài)代碼塊");
    }

    public static void A() {
        System.out.println("父類普通靜態(tài)方法");
    }

}

class Derived extends Base {

    public Derived() {
        System.out.println("子類構造器");
    }

    String b = "子類非靜態(tài)變量";
    {
        System.out.println(b);
        System.out.println("子類非靜態(tài)代碼塊");
    }

    static String a = "子類靜態(tài)變量";

    static {
        System.out.println(a);
        System.out.println("子類靜態(tài)塊");
    }

    public static void A() {
        System.out.println("子類普通靜態(tài)方法");
    }

    public static void main(String[] args) {
        Base.A();
        Derived.A();
        new Derived();
    }
}

分別執(zhí)行主函數(shù)里的三條指令,執(zhí)行結果如下。

Base.A()

  • 父類靜態(tài)變量
  • 父類靜態(tài)代碼塊
  • 子類靜態(tài)變量
  • 子類靜態(tài)塊
  • 父類普通靜態(tài)方法

Derived.A()

  • 父類靜態(tài)變量
  • 父類靜態(tài)代碼塊
  • 子類靜態(tài)變量
  • 子類靜態(tài)塊
  • 子類普通靜態(tài)方法

new Derived()

  • 父類靜態(tài)變量
  • 父類靜態(tài)代碼塊
  • 子類靜態(tài)變量
  • 子類靜態(tài)代碼塊
  • 父類非靜態(tài)變量
  • 父類非靜態(tài)代碼塊
  • 父類構造函數(shù)
  • 子類非靜態(tài)變量
  • 子類非靜態(tài)代碼塊
  • 子類構造函數(shù)

網頁題目:一文讓你徹底搞懂Java程序的初始化順序
網站網址:http://weahome.cn/article/pggdgp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部