「Java8」初期化ブロック(オブジェクトイニシャライザ)を使用するサンプル

環境
JavaSE1.8
Eclipse2019-12

書式

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class クラス名 {
private final データの型 変数名;
//初期化ブロックコード
{
変数名 =値;
}
}
public class クラス名 { private final データの型 変数名; //初期化ブロックコード { 変数名 =値; } }
public class クラス名 {
 private final データの型 変数名;
 //初期化ブロックコード
 { 
  変数名 =値;
  }
}

初期化ブロックの役割は用途は主に次の2つです。
すべてのコンストラクタの共通処理を記述可能です
匿名クラスの初期化に使用します
使い方
クラス名 インスタンス名 = new クラス名();
インスタンス名.変数名

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.study;
import java.util.Date;
public class StaticObjectDemo {
//変数の宣言
private final Date date;
private final int LEVEL;
// 初期化ブロックコード
{
System.out.println("初期化ブロックの実行");
date = new Date();
LEVEL = 12;
}
/**
* 日付の取得
*
* @return date
*/
public Date getDate() {
return date;
}
public static void main(String[] args) {
// インスタンス生成
StaticObjectDemo stobj = new StaticObjectDemo();
System.out.println(stobj.getDate().toString());
System.out.println(stobj.LEVEL);
}
}
package com.arkgame.study; import java.util.Date; public class StaticObjectDemo { //変数の宣言 private final Date date; private final int LEVEL; // 初期化ブロックコード { System.out.println("初期化ブロックの実行"); date = new Date(); LEVEL = 12; } /** * 日付の取得 * * @return date */ public Date getDate() { return date; } public static void main(String[] args) { // インスタンス生成 StaticObjectDemo stobj = new StaticObjectDemo(); System.out.println(stobj.getDate().toString()); System.out.println(stobj.LEVEL); } }
package com.arkgame.study;

import java.util.Date;

public class StaticObjectDemo {
      
      //変数の宣言
      private final Date date;
      private final int LEVEL;
      
      // 初期化ブロックコード
      {
            System.out.println("初期化ブロックの実行");
            date = new Date();
            LEVEL = 12;
      }

      /**
       * 日付の取得
       * 
       * @return date
       */
      public Date getDate() {
            return date;
      }

      public static void main(String[] args) {
            // インスタンス生成
            StaticObjectDemo stobj = new StaticObjectDemo();
            System.out.println(stobj.getDate().toString());
            System.out.println(stobj.LEVEL);

      }

}

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
初期化ブロックの実行
Thu May 12 09:28:39 JST 2022
12
初期化ブロックの実行 Thu May 12 09:28:39 JST 2022 12
初期化ブロックの実行
Thu May 12 09:28:39 JST 2022
12

 

Java

Posted by arkgame