W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
實(shí)例初始化塊用于初始化類的對(duì)象。
一個(gè)實(shí)例初始化程序只是一個(gè)類的代碼塊,但在任何方法或構(gòu)造函數(shù)之外。
實(shí)例初始值設(shè)定程序沒(méi)有名稱。它的代碼只是放置在一個(gè)開(kāi)放大括號(hào)和閉包。
下面的代碼展示了如何為Test類聲明一個(gè)實(shí)例初始化器。
注意,實(shí)例初始化程序在實(shí)例上下文中執(zhí)行,并且關(guān)鍵字this在實(shí)例初始化程序中可用。
class Test { private int num; // An instance initializer { this.num = 101; /* Other code for the instance initializer*/ } /* Other code for Test class*/ }
我們可以有一個(gè)類的多個(gè)實(shí)例初始化器。對(duì)于我們創(chuàng)建的每個(gè)對(duì)象,它們都以文本順序自動(dòng)執(zhí)行。
所有實(shí)例初始值的代碼在任何構(gòu)造函數(shù)之前執(zhí)行。
下面的代碼演示了構(gòu)造函數(shù)和實(shí)例初始化函數(shù)的執(zhí)行順序。
public class Main { { System.out.println("Inside instance initializer 1."); } { System.out.println("Inside instance initializer 2."); } public Main() { System.out.println("Inside no-args constructor."); } public static void main(String[] args) { Main m = new Main(); } }
上面的代碼生成以下結(jié)果。
實(shí)例初始化程序不能有return語(yǔ)句。
靜態(tài)初始化塊也稱為靜態(tài)初始化器。它類似于實(shí)例初始化塊。
它用于初始化一個(gè)類。每個(gè)對(duì)象執(zhí)行一個(gè)實(shí)例初始化器,而當(dāng)類定義被加載到JVM中時(shí),只對(duì)一個(gè)類執(zhí)行一次靜態(tài)初始化器。
我們需要在其聲明的開(kāi)頭使用static關(guān)鍵字。
我們可以在類中有多個(gè)靜態(tài)初始化器。所有靜態(tài)初始化器都按文本出現(xiàn)的順序執(zhí)行,并在任何實(shí)例初始化器之前執(zhí)行。
以下代碼演示了何時(shí)執(zhí)行靜態(tài)初始化程序。
public class Main { private static int num; {// An instance initializer System.out.println("Inside instance initializer."); } // A static initializer. Note the use of the keyword static below. static { num = 2014; System.out.println("Inside static initializer."); } // Constructor public Main() { System.out.println("Inside constructor."); } public static void main(String[] args) { System.out.println("Inside main() #1. num: " + num); // Declare a reference variable of the class Main si; System.out.println("Inside main() #2. num: " + num); new Main(); // Create an object System.out.println("Inside main() #3. num: " + num); new Main();// Create another object } }
上面的代碼生成以下結(jié)果。
靜態(tài)初始化器不能拋出檢查的異常,它不能有一個(gè)return語(yǔ)句。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: