基礎・基礎
JavaClass
には、メンバー関数とクラス変数のみが含まれ、インスタンスinitliazer、静的ブロックなどの他のいくつかの例外が含まれています.
実行可能ファイル(のようなSystem.out.println()
)を内部の好きな場所に振りかけることはできませんClass
。
インスタンス初期化
{...}
Java では、が作成さinstance initializer
れるたびに呼び出されます。object
であるためinstance initializer
、実際には前に呼び出されconstructor
ます。
またはSystem.out.println()
の中に書くことができます。{...}
instance initializer
静的ブロック
static{...}
は Java で呼び出されます。これには、が によってロードされstatic block
たときに 1 回だけ呼び出されるコード行が含まれています。class
JVM
ここでも、またはSystem.out.println()
の中に書くことができます。{...}
static block
以下の簡単な実行例
public class JavaExample {
public JavaExample (String name){
System.out.println("Inside constructor" + name);
}
{
System.out.println("Inside instance initializer");
}
static{
System.out.println("Inside static block");
}
//System.out.println("Will give error"); //ERROR
public static void main(String[] args) {
JavaExample obj1 = new JavaExample ("obj1");
JavaExample obj2 = new JavaExample ("obj2");
System.out.println("Inside the public static void main");
}
}
出力
> Inside static block
> Inside instance initializer
> Inside constructor: obj1
> Inside instance initializer
> Inside constructor: obj2
> Inside the public static void main
実行順序に注意してください。
- 静的ブロック (JVM がクラスをロードするときに一度呼び出されるため、最初に呼び出されます)
- インスタンス初期化子 (オブジェクトのインスタンス化の呼び出し前)
- コンストラクター (オブジェクトの作成/初期化中)