欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何在Java中實現(xiàn)實例初始化塊-創(chuàng)新互聯(lián)

這篇文章主要為大家詳細介紹了如何在Java中實現(xiàn)實例初始化塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,發(fā)現(xiàn)的小伙伴們可以參考一下:

創(chuàng)新互聯(lián)專注于大武口企業(yè)網(wǎng)站建設,自適應網(wǎng)站建設,商城網(wǎng)站建設。大武口網(wǎng)站建設公司,為大武口等地區(qū)提供建站服務。全流程定制網(wǎng)站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務Java是什么

Java是一門面向?qū)ο缶幊陶Z言,可以編寫桌面應用程序、Web應用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應用程序。

實例化塊的語法

實例初始化塊一般放在構(gòu)造函數(shù)之前,使用大括號 {} 擴起來的代碼。語法結(jié)構(gòu)一般如下

class JavaTester 
{ 
  // 實例化塊 
  { 
    System.out.println("IIB block"); 
  } 
   
  // 構(gòu)造函數(shù)
  JavaTester() 
  { 
    System.out.println("Constructor Called"); 
  } 
  public static void main(String[] args) 
  { 
    JavaTester a = new JavaTester(); 
  } 
}

注意,實例化塊并不是類的必須。只是一個可選項。用于抽出構(gòu)造函數(shù)的公共部分單獨執(zhí)行而已。

這段代碼是可以編譯運行的,運行結(jié)果如下

[yufei@www.twle.cn java]$ javac JavaTester.java && java JavaTester
IIB block
Constructor Called

一個類中包含多個實例初始化塊

類中的 實例初始化塊 并不是類所必須的,而且,不限數(shù)量。一個類既可以沒有實例初始化塊,也可以有多個實例初始化塊。

如果一個類有多個實例初始化塊,那么它們會按照順序從上到下依次執(zhí)行,也就是說,定義在類頂部的實例初始化塊最先執(zhí)行。

我們來看一段代碼,下面的類 JavaTester 定義了多個實例初始化塊。

class JavaTester 
{ 
  { 
    System.out.println("IIB1 block 1 "); 
  } 
   
  { 
    System.out.println("IIB2 block 2"); 
  } 
    
  JavaTester() 
  { 
    System.out.println("Constructor Called"); 
  } 
    
  { 
    System.out.println("IIB3 block 3"); 
  } 
   
  public static void main(String[] args) 
  { 
    JavaTester a = new JavaTester(); 
  } 
}

運行上面這段代碼,輸出結(jié)果如下

[yufei@www.twle.cn java]$ javac JavaTester.java && java JavaTester
IIB1 block 1 
IIB2 block 2
IIB3 block 3
Constructor Called

父類中的初始化塊

在 Java 語言的繼承體系中,父類同樣可以有初始化塊,而且數(shù)量不限。

父類的實例初始化塊在子類的構(gòu)造函數(shù)中調(diào)用 super() 之后立即運行。編譯器會在執(zhí)行當前類的實例初始化塊之前先執(zhí)行父類的實例初始化塊。

是不是很繞口,我們寫一段代碼來演示下

class B 
{ 
  B() 
  { 
    System.out.println("B-Constructor Called"); 
  } 
  
  { 
    System.out.println("B-IIB block"); 
  } 
  
}
 
public class JavaTester extends B 
{ 
  { 
    System.out.println("JavaTester IIB1 block 1 "); 
  } 
   
  { 
    System.out.println("JavaTester IIB2 block 2"); 
  } 
    
  JavaTester() 
  { 
    super(); 
    System.out.println("JavaTester-Constructor Called");
  } 
    
  { 
    System.out.println("JavaTester IIB3 block 3"); 
  } 
   
  public static void main(String[] args) 
  { 
    JavaTester a = new JavaTester(); 
  } 
}

運行以上范例,輸出結(jié)果如下

[yufei@www.twle.cn java]$ javac JavaTester.java && java JavaTester
B-IIB block
B-Constructor Called
JavaTester IIB1 block 1 
JavaTester IIB2 block 2
JavaTester IIB3 block 3
JavaTester-Constructor Called

從運行的結(jié)果來看,當創(chuàng)建類 JavaTester 的對象時,編譯器嘗試執(zhí)行類 JavaTester 的構(gòu)造函數(shù)。但因為它有一個父類,在發(fā)現(xiàn)了 super() 語句后,就轉(zhuǎn)而先執(zhí)行父類的構(gòu)造函數(shù)。

因此,在繼承體系中,實例初始化塊和構(gòu)造函數(shù)的執(zhí)行順序如下

執(zhí)行父類的實例初始化塊

執(zhí)行父類的構(gòu)造函數(shù)

執(zhí)行當前類的實例初始化塊

執(zhí)行當前類的構(gòu)造函數(shù)

實例初始化塊的要點

我們一起來回顧下實例初始化塊的要點。

每次創(chuàng)建新實例時都會運行實例初始化塊

初始化塊按它們在類中出現(xiàn)的順序運行

以上就是創(chuàng)新互聯(lián)小編為大家收集整理的如何在Java中實現(xiàn)實例初始化塊,如何覺得創(chuàng)新互聯(lián)網(wǎng)站的內(nèi)容還不錯,歡迎將創(chuàng)新互聯(lián)網(wǎng)站推薦給身邊好友。

當前標題:如何在Java中實現(xiàn)實例初始化塊-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://www.chinadenli.net/article16/dhsogg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)建站公司電子商務靜態(tài)網(wǎng)站App開發(fā)商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設