今天小編給大家分享一下Java靜態(tài)塊、自由塊及構(gòu)造函數(shù)的執(zhí)行順序是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創(chuàng)新互聯(lián)公司10多年成都企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站建設(shè)及推廣,對(duì)報(bào)廢汽車回收等多個(gè)領(lǐng)域擁有多年設(shè)計(jì)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
靜態(tài)塊格式:
static
{
}
靜態(tài)塊在類被加載的時(shí)候執(zhí)行,又因?yàn)榧虞d子類時(shí),會(huì)預(yù)先加載父類,因此父類中如果有靜態(tài)塊,則最先執(zhí)行。然后立即執(zhí)行子類的靜態(tài)塊。
如果一個(gè)類中有多個(gè)靜態(tài)塊,則按照編碼的先后順序執(zhí)行。
注:由于類只會(huì)被加載一次,因此每個(gè)靜態(tài)塊便只會(huì)執(zhí)行一次。
自由塊格式:
{
}
自由塊在類被實(shí)例化時(shí)執(zhí)行。
如果要實(shí)例化一個(gè)子類,那么他的構(gòu)造函數(shù)會(huì)先實(shí)例化其父類。因此父類的自由塊會(huì)先被執(zhí)行,然后開始構(gòu)造父類。父類的構(gòu)造器執(zhí)行完畢后,操作權(quán)返回給子類的構(gòu)造器,此時(shí)開始執(zhí)行子類的自由塊。
然后開始構(gòu)造子類。
以下為融合了父類靜態(tài)塊、子類靜態(tài)塊,父類自由塊、子類自由塊,父類構(gòu)造函數(shù)、子類構(gòu)造函數(shù),this關(guān)鍵字、super關(guān)鍵字的一個(gè)例子,感覺很值得分析,值得記錄。
[java] view
plaincopy
package com.lsky.test;
public class Father {
private int sum;
//父類中的靜態(tài)塊
static{
System.out.println("2010年新年快樂");
}
public void first(int i){
sum=++i+sum++-1+i--;
System.out.println(sum);
}
//父類無參構(gòu)造器
public Father(){
System.out.println("美好的一天");
}
//含參數(shù)構(gòu)造器
public Father(String s){
System.out.println("我們是學(xué)生");
}
//父類中的自由塊
{
System.out.println("菩提本無樹,明鏡亦非臺(tái),本來無一物,何處惹塵埃");
}
}
package com.lsky.test;
public class Son extends Father {
private int sum;
private static Father father;
//子類中含參構(gòu)造器(含參構(gòu)造函數(shù))
public Son(Father father){
this();
father.first(8);
}
//子類中無參構(gòu)造器(無參構(gòu)造函數(shù))
public Son(){
this.punk(6);
}
public void first(int i){
sum=sum+i++;
System.out.println(sum);
}
//子類中的靜態(tài)塊
static{
Father f=new Son();
f.first(4);
}
int punk(int sum){
sum=sum;
return sum;
}
//子類中的自由塊
{
System.out.println("曾經(jīng)滄海難為水,除卻巫山不是云");
}
public static void main(String argsp[]){
Son son=new Son(new Son());
}
}
[java] view
plaincopy
//輸出結(jié)果為:
2010年新年快樂
菩提本無樹,明鏡亦非臺(tái),本來無一物,何處惹塵埃
美好的一天
曾經(jīng)滄海難為水,除卻巫山不是云
4
菩提本無樹,明鏡亦非臺(tái),本來無一物,何處惹塵埃
美好的一天
曾經(jīng)滄海難為水,除卻巫山不是云
菩提本無樹,明鏡亦非臺(tái),本來無一物,何處惹塵埃
美好的一天
曾經(jīng)滄海難為水,除卻巫山不是云
8
以上就是“Java靜態(tài)塊、自由塊及構(gòu)造函數(shù)的執(zhí)行順序是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。