首頁 > Java > java教程 > Java靜態區塊、自由區塊及建構函數的執行順序是什麼

Java靜態區塊、自由區塊及建構函數的執行順序是什麼

WBOY
發布: 2023-04-18 19:55:47
轉載
1155 人瀏覽過

靜態區塊格式:
    static
   {
    }
   
 }  
 靜態區塊在類別載入的時候執行,又因為載入子類別時,會預先載入父類,因此父類別中如果有靜態區塊,則最先執行。然後立即執行子類別的靜態區塊。    
 如果一個類別中有多個靜態區塊,則依照編碼的先後順序執行。    
 註:由於類別只會載入一次,因此每個靜態區塊只會執行一次。    
 自由方塊格式:   
{   
 }   
 
 }

 

  自由塊在類別被實例化時執行。   
 

 如果要實例化一個子類,那麼他的建構子會先實例化其父類別。因此父類別的自由塊會先被執行,然後開始建構父類別。父類別的建構器執行完畢後,操作權傳回給子類別的建構器,此時開始執行子類別的自由區塊。

然後開始建構子類別。
 

 
     
  1.  

    以下為融合了父類別靜態區塊、子類別靜態區塊,父類別自由區塊、子類別自由區塊,父類別建構函數、子類別建構函數,this關鍵字、super關鍵字的例子,感覺很值得分析,值得記錄。

  2. [java]
     view

    ## plaincopy
  3. package com.lsky.test;  
  4. ##public class Father {  
  5.  private int  sum;  
  6.  //父類別中的靜態區塊
  7.  static {  
  8.   System.out.println("2010年新年快樂");  
  9.  }  
  10. ## }  

  11. # public void  first(int i){  

  12.   sum= i sum -1 i--;  

  13.   System.out.println( sum);  

  14.  }  

  15.  //父類別無參考建構器

  16.  public Father (){  

  17.   System.out.println("美好的一天");  

  18.  }  

  19.  //含參數建構器

  20.  public Father(String s){  

  21.   System.out.println("我們是學生");  

  22.  }  

  23.  //父類別中的自由區塊

  24.  {  


  25.  System.out.println("菩提本無樹,明鏡亦非台,本來無一物,何處惹塵埃");  
  26. # }  

  27. }  
  28. package com.lsky.test;
  29. public class Son extends Father {  

  30.  private int 

  31. ## private static Father father;  
  32.  //子類別中包含參構造器(含參構造函數)
  33. # public Son(Father father){  
  34.   this();  
  35. #  father.first(8)  

  36.   father.first(8));

  37.  }  

  38.  //子類別中無參考建構子(無參考建構子)

  39.  public Son(){  

  40. #  this.punk(6);  

  41. }  
  42.   public void  first(int i){  
  43.   sum=sum i ;  
  44. #  sum=sum i ;  
  45. ##> System.out.println(sum);  
  46. ## }  
  47.   //子類別中的靜態區塊
  48.   static{  
  49.    Father f=new Son();  
  50.    f.first(4);
  51. ##   f.first(4);#1

    #  }  ############  int punk(int sum){  ############    #####   return sum;  ############  }  ############  //子類別中的自由區塊#############  //子類別中的自由區塊########### ###  {  ############   System.out.println("曾經滄海難為水,除卻巫山不是雲");  ########## #########  public static void main(String argsp[]){  ###################
  52.    Son son=new Son(new Son());  


  53.   } 

  54. ## 

##}  

  1. [java]

     view

    plaincopy

  2. //輸出結果為:

  3.   2010新年快樂
  4.   菩提本無樹,明鏡亦非台,本來無一物,何處惹塵埃  
  5.   美好的一天  
  6. ##  美好的一天  
  7.   曾經滄海難為水,除卻巫山不是雲  
  8.   4
  9.   菩提本無樹,明鏡亦非,原本無一物,何處惹塵埃  
  10.   美好的一天  
  11. #  美好的一天  

#  美好的一天  ######################  為水,除卻巫山不是雲  #############  為水,除卻巫山不是雲  ###### #######  菩提本無樹,明鏡亦非台,本來無一物,何處惹塵埃  ############  美好的一天  ################  美好的一天  #################」 ###  曾經滄海難為水,除卻巫山不是雲  ############  8##########

以上是Java靜態區塊、自由區塊及建構函數的執行順序是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板