ホームページ > 类库下载 > java类库 > Javaクラスの初期化シーケンス

Javaクラスの初期化シーケンス

高洛峰
リリース: 2016-11-03 13:17:37
オリジナル
1647 人が閲覧しました

Java では、新しいオブジェクトを作成すると、オブジェクト内のメンバー、初期化ブロック、コンストラクターが特定の順序でロードされます。以下の図を参照してください:

Javaクラスの初期化シーケンス

1. 単一クラス (基本クラスなし) ):

public class Parent {

static String staticStr = "親クラスの静的変数";

private String str = "親クラスのメンバー変数";

static {

System.out. System.out.println("親クラスの静的初期化ブロック");

}

{

System.out.println(str);

System.out.println("親クラスの初期化ブロック");

}

public Parent() {

System.out.println("親クラス構築");

}

public static void main(String[] args ) {

new Parent ();

親クラスの初期化ブロック

親クラスの構造 親クラスの構造

単一クラスの順序: ① 静的 (メンバー、ブロック) > 非静的 (メンバー、ブロック) > 構築

メンバーの順序and ブロックは、「クラス内で定義される前後の位置、最初に指定されたものが最初に初期化される」に依存します。

③ 静的メンバーまたはブロックはクラスに属しているため、最初に初期化され、初期化されるのは 1 回だけです。 construment最後に実行される建設。

2. 継承クラスの初期化シーケンス

class SubClass extends Parent {

static String staticStr = "サブクラスの静的変数";

private String str = "サブクラスのメンバ変数";

static {

System.out.println(staticStr);

System.out.println("サブクラス静的初期化ブロック");

}

{

System.out.println(str);

システム。 out.println("サブクラス初期化ブロック");

}

public SubClass() {

System.out.println("サブクラス構築");

}

public static void main(String [] args) {

System.out.println("サブクラスのメインメソッド");

new SubClass();

}

}

出力:親クラスの静的変数

クラスの静的初期化ブロック 子クラス static変数 静的変数

サブクラスの静的初期化ブロック

subcate Main メソッド

親クラスの変数

親初期化ブロック

親クラスのメンバー変数 初期化ブロックのイニシアチブ

継承順序:

① 親クラス static (メンバー、ブロック)> サブクラス static (メンバー、ブロック)> 親クラス 非静的 (メンバー、ブロック) 非静的 (メンバー、ブロック) > サブクラスの構築メンバーとブロックの順序は次のとおりです。単一クラスの場合と同様 非静的クラス (メンバーとブロック) は、静的クラスに属しているため、非静的クラスとコンストラクターの場合は、サブクラスをロードする前にすべての親クラスをロードするのが自然です。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート