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

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

Android代碼塊執(zhí)行順序分析總結(jié)

本文介紹了Android代碼塊執(zhí)行順序分析總結(jié),分享給大家,具體如下:

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了突泉免費(fèi)建站歡迎大家使用!

子類、父類變量,代碼塊,以及構(gòu)造方法的加載順序,是我們?cè)诔绦蜷_發(fā)中時(shí)不時(shí)遇到的一個(gè)問題,也是比較容易混淆的。

基礎(chǔ)準(zhǔn)備:

  1. 變量: 成員變量(叫類變量、實(shí)例變量)和局部變量
  2. 方法: 成員方法和構(gòu)造方法
  3. 代碼塊:普通代碼塊、構(gòu)造代碼塊、靜態(tài)代碼塊、同步代碼塊

測(cè)試的父類:

public class ParentClass {
  public static String name = "爸爸";
  public int age = 40;
  public ParentClass(){
    System.out.println("父類構(gòu)造函數(shù)");
  }

  //非靜態(tài)代碼塊
  {
    System.out.println("父類非靜態(tài)代碼塊" + "---" + age);
  }

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

測(cè)試的子類:

public class ChildrenClass extends ParentClass{
  public static String name = "兒子";
  public int age = 15;
  public ChildrenClass(){
    System.out.println("子類構(gòu)造函數(shù)");
  }
  {
    System.out.println("子類非靜態(tài)代碼塊" + "---" + age);
  }

  static {
    System.out.println("子類靜態(tài)代碼塊" + "---" + name);
  }

}

執(zhí)行new ChildrenClass()結(jié)果:

Android代碼塊執(zhí)行順序分析總結(jié)

結(jié)果分析:

父類靜態(tài)代碼塊執(zhí)行前,父類靜態(tài)變量就已經(jīng)執(zhí)行了。

父類非靜態(tài)代碼塊執(zhí)行前,父類非靜態(tài)變量就已經(jīng)執(zhí)行了。

上面結(jié)論子類同理。

代碼塊執(zhí)行順序總結(jié):

父類的靜態(tài)成員變量—->父類靜態(tài)代碼塊—->子類靜態(tài)成員變量—->子類靜態(tài)代碼塊—>父類非靜態(tài)變量—->父類非靜態(tài)代碼塊—->父類構(gòu)造方法—->子類非靜態(tài)變量—->子類非靜態(tài)代碼塊—->子類構(gòu)造方法。

另外關(guān)于代碼塊的總結(jié):

  1. 在類第一次調(diào)用時(shí),靜態(tài)代碼塊只執(zhí)行這一次。
  2. 靜態(tài)代碼塊和靜態(tài)方法只能調(diào)用靜態(tài)變量;
  3. 非靜態(tài)代碼塊和非靜態(tài)方法可以調(diào)用任何(靜態(tài)+非靜態(tài))變量。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


網(wǎng)站標(biāo)題:Android代碼塊執(zhí)行順序分析總結(jié)
本文地址:http://weahome.cn/article/psccsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部