「Java8」初期化ブロック(オブジェクトイニシャライザ)を使用するサンプル
環境
JavaSE1.8
Eclipse2019-12
書式
public class クラス名 {
private final データの型 変数名;
//初期化ブロックコード
{
変数名 =値;
}
}
public class クラス名 {
private final データの型 変数名;
//初期化ブロックコード
{
変数名 =値;
}
}
public class クラス名 { private final データの型 変数名; //初期化ブロックコード { 変数名 =値; } }
初期化ブロックの役割は用途は主に次の2つです。
すべてのコンストラクタの共通処理を記述可能です
匿名クラスの初期化に使用します
使い方
クラス名 インスタンス名 = new クラス名();
インスタンス名.変数名
使用例
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); } }
実行結果
初期化ブロックの実行
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