#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。 構築コード ブロック、静的コード ブロック、構築メソッドはクラス内の 3 つの異なるコード ブロックですが、それらの違いは何ですか? 1. 3 種類のコード ブロックの紹介静的コード ブロック: staitc で宣言され、jvm がクラスをロードするときに実行され、一度だけ実行されます構築されたコード ブロック: 直接クラス {} 定義で使用され、オブジェクトが作成されるたびに実行されます。 実行順序の優先順位: static ブロック、main()、構築ブロック、構築メソッド。実行順序は、最初に「静的コード ブロック」を実行し、次に「構築されたコード ブロック」を実行し、最後に「構築されたコード ブロック」を実行します。静的コード ブロックはクラス レベルにあり、構造的コード ブロックと構築メソッドはインスタンス レベルであるため、静的コード ブロックが最初に実行されます。また、構造的コード ブロックは独立しており、実行するにはキャリアに依存する必要があるため、構造的コード ブロックはコード ブロックはメソッドの前に構造体に配置する必要があります。
class A { //构造代码块 { System.out.println("构造代码块A"); } //静态代码块 static { System.out.println("静态代码块A"); } //构造方法 public A() { System.out.println("构造方法A"); } }2番目と3番目の実行順序3者の実行順序を明確にするために、クラスAをインスタンス化し、単一インスタンスと複数インスタンスをそれぞれテストします。 2.1 単一インスタンス
class Demo { public static void main(String[] args) { new A(); } }
class Demo { public static void main(String[] args) { new A(); new A(); new A(); } }
# # 3. 継承システムの順序
class B extends A { //构造代码块 { System.out.println("构造代码块B"); } //静态代码块 static { System.out.println("静态代码块B"); } //构造方法 public B() { System.out.println("构造方法B"); } } class Demo { public static void main(String[] args) { new B(); } }
4. まとめ
2. 構築コード ブロック: 独立しており、実行するにはキャリアに接続する必要があります。Java は、いくつかの共通インスタンス変数をインスタンス化し、コードの量を減らすために、各構築メソッドの前に構築コード ブロックを配置します。3. サブクラス オブジェクトを作成するとき、サブクラスの静的コード ブロックは親クラスの静的コード ブロックの後に実行されますが、親クラスの構築コード ブロックおよび構築メソッドよりも優先されます。3.構築メソッド: 変数をインスタンス化するために使用されます。
1 はクラス レベル、2 と 3 はインスタンス レベルであるため、当然のことながら 1 は 23 よりも優先されます。1 つ理解しましょう。サブクラスのアクティブな使用は、その親クラスのアクティブな使用につながります。そのため、サブクラスはインスタンス化されますが、親クラスの初期化とインスタンス化も行われます。サブクラスで実行するのが最適です。
2. オブジェクトが作成されるたびに、構築コード ブロックと構築メソッドが 1 回実行されます。作成されるオブジェクトの数に関係なく、静的コード ブロックは最初の作成時に 1 回だけ実行されます。オブジェクトが作成される;
4. サブクラス オブジェクトを作成する場合、親クラスの構築メソッドの後にサブクラスの構築コード ブロックが実行されます。
推奨される関連ビデオ チュートリアル:
以上が静的コード ブロック、構築コード ブロック、構築メソッドの実行順序は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。