1. 静的コード ブロックと非静的コード ブロックの概要
1. 静的コード ブロック: 静的コード ブロックは、クラスがロードされる (メモリ) ときに最初に呼び出され、1 回実行されます。静的ブロックは、クラス属性の初期化を実行するためによく使用されます。
クラスをロードする前に呼び出されます。 2. 非静的コード ブロック:
非静的コード ブロックは、クラスのオブジェクトが作成されて (メモリに) ロードされるとき、つまりオブジェクトが作成されるたびに最初に呼び出されます。オブジェクトがロードされると、非静的コード ブロックが 1 回実行されます。
クラスオブジェクトをロードする前に呼び出されます。 3. 静的メソッドと非静的メソッド: これらはすべて呼び出されると実行されます。静的メソッドはクラスに属し、クラスのロード後に呼び出すことができます。非静的メソッドはオブジェクトに属し、オブジェクトのロード後に呼び出すことができます。
2. 関連するデモンストレーション例
1 public class Cc { 2 public static void main(String[] args) { 3 test p=new test(); 4 } 5 } 6 7 class test { 8 test() { //在类对象创建的时候就开始执行。简称创建即执行。 9 System.out.println("这是构造函数");10 }11 12 { //构造代码块,执行在构造函数之前,每当在创建类对象的时候都执行。13 System.out.println("这是构造代码块");14 }15 16 static { //静态代码块,最早执行,且值执行一次。17 System.out.println("这是静态代码块");18 }19 }
2 回呼び出された場合に何が起こるかを示します。静的コード ブロックについての理解を深めます。
1 public class Ccc { 2 public static void main(String[]args) 3 { 4 MyTest p=new MyTest(); 5 MyTest p2=new MyTest();//两次调用 6 } 7 } 8 class MyTest{ 9 10 MyTest(){11 System.out.println("这是构造函数");12 }13 14 {15 System.out.println("这是构造代码块");16 }17 18 static{19 System.out.println("这是静态代码块");20 21 }22 }
パラメータを使用した例を紹介します:
1 class Cccc { 2 public static void main(String[] args) { 3 new Person(77); 4 new Person(); 5 } 6 } 7 8 class Person { 9 10 Person() { 11 System.out.println("a"); 12 } 13 14 15 Person(int x) { //注意带参数了!! 16 System.out.println(x); 17 } 18 19 static { 20 System.out.println("b"); 21 } 22 23 { 24 System.out.println("c"); 25 } 26 }
以上が静的コード ブロックと構築されたコード ブロックの解釈の 3 つのケースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。