「Java」static初期化ブロックとコンストラクタの実行順番のサンプル

2022年1月21日

書式
順番
1.static初期化ブロックが実行されます。クラスが呼ばれる1回目のみ実行されます。
2.初期化ブロックが実行されます。クラスのインスタンスが生成される毎に実行されます。
3.コンストラクタが実行されます。クラスのインスタンスが生成される毎に実行されます。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.testinfo;
class EmpInfo {
// コンストラクタ
EmpInfo() {
System.out.println("コンストラクタが実行されます");
}
// static初期化ブロック
static {
System.out.println("static初期化ブロックが実行されます");
}
// 初期化ブロック
{
System.out.println("初期化ブロックが実行します");
}
void funA() {
System.out.println("test data");
}
}
public class Kademo {
public static void main(String[] args) {
EmpInfo cftA = new EmpInfo();
cftA.funA();
}
}
package com.arkgame.testinfo; class EmpInfo { // コンストラクタ EmpInfo() { System.out.println("コンストラクタが実行されます"); } // static初期化ブロック static { System.out.println("static初期化ブロックが実行されます"); } // 初期化ブロック { System.out.println("初期化ブロックが実行します"); } void funA() { System.out.println("test data"); } } public class Kademo { public static void main(String[] args) { EmpInfo cftA = new EmpInfo(); cftA.funA(); } }
package com.arkgame.testinfo;

class EmpInfo {
      
      // コンストラクタ
      EmpInfo() {
            System.out.println("コンストラクタが実行されます");
      }
      
      // static初期化ブロック
      static {
            System.out.println("static初期化ブロックが実行されます");
      }
      // 初期化ブロック
      {
            System.out.println("初期化ブロックが実行します");
      }
      void funA() {
            System.out.println("test data");
      }

}

public class Kademo {

      public static void main(String[] args) {
            EmpInfo cftA = new EmpInfo();
            cftA.funA();
      }

}

実行結果
static初期化ブロックが実行されます
初期化ブロックが実行します
コンストラクタが実行されます
test data

Java

Posted by arkgame