まず、クラスの初期化手順
あなたが作成する必要があるクラスのインスタンスとロードを作成するための1、
必要にロードし、インスタンス化するクラス(1)mainメソッド
2、サブクラスの初期化には、親クラスを初期化する必要があります
図3に示すように、クラスの初期化が行われる<clinit>方法
(1)<clinit>()静的ブロック符号を割り当てる方法と、静的クラス変数を表示します。
上から下へのコードの実行順序の(2)静的クラス変数割り当ておよび海馬静的ブロック
(3)<clinit>()メソッドは、一度だけ実行されます
第二に、インスタンスの初期化処理(親、親クラスが初期化を開始するとき)
図1に示すように、初期化が実行される例<初期化>()メソッド
(1)<INIT>()メソッドがオーバーロードを複数有していてもよく、いくつかのコンストラクタが存在するいくつかの<init>メソッドを持っています
(2)<初期化>()ブロックの非静的および非静的インスタンス変数によって割り当てられたコードを表示する方法であって、構成コードは、組成物に対応します
(3)非静的インスタンス変数は、上から下に表示され、コードブロックの実行順序の非静的割り当てされ、最後の実行コードコンストラクタ
(4)作成されたオブジェクトの各インスタンスは、対応するコンストラクタが対応する<初期化>メソッド呼び出しが行われます
(5)<初期化>この方法の最初の行は、(超である)またはスーパー(引数リスト)、すなわち、親に対応する<初期化>方法
注:サブクラスは親クラスのメソッドをオーバーライドする場合は、呼び出すことにより、サブクラスのオブジェクトは、サブクラスのコードを書き直さなければなりません
非静的メソッドの呼び出しオブジェクトは、このデフォルトです
このオブジェクトは、コンストラクタ内のオブジェクトであるか、または<INIT>方法が作成されています