ホームページ  >  記事  >  Java  >  静的コード ブロックと構築されたコード ブロックの解釈の 3 つのケース

静的コード ブロックと構築されたコード ブロックの解釈の 3 つのケース

巴扎黑
巴扎黑オリジナル
2017-06-26 09:30:081545ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。