基礎・基礎
JavaClassには、メンバー関数とクラス変数のみが含まれ、インスタンスinitliazer、静的ブロックなどの他のいくつかの例外が含まれています.
実行可能ファイル(のようなSystem.out.println())を内部の好きな場所に振りかけることはできませんClass。
インスタンス初期化
{...}Java では、が作成さinstance initializerれるたびに呼び出されます。objectであるためinstance initializer、実際には前に呼び出されconstructorます。
またはSystem.out.println()の中に書くことができます。{...} instance initializer
静的ブロック
static{...}は Java で呼び出されます。これには、が によってロードされstatic blockたときに 1 回だけ呼び出されるコード行が含まれています。classJVM
ここでも、または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 がクラスをロードするときに一度呼び出されるため、最初に呼び出されます)
- インスタンス初期化子 (オブジェクトのインスタンス化の呼び出し前)
- コンストラクター (オブジェクトの作成/初期化中)