1。閉鎖の定義。
閉鎖を定義している人はたくさんいますが、ここにいくつかあります。
#は、自由変数を参照する関数です。この関数は通常、別の外部関数で定義され、外部関数の変数を指します。 - << wikipedia >>
#は、作成された範囲からいくつかの情報を記録する呼び出し可能なオブジェクトです。 - << Javaプログラミング思考>>
#は、パラメーターを受け入れ、返品値を返すことができる匿名のコードブロック、またはその周りの可視ドメインで定義された参照および使用変数です。 -Groovy ['ru:vi]
#は、自由変数のコンテキストとこれらの変数の結合を持つ式です。
#閉鎖により、いくつかの動作をカプセル化し、オブジェクトのように渡すことができますが、元の最初の宣言のコンテキストにアクセスできます。
#複数の変数とこれらの変数に結合した環境を持つ式(通常は関数)を指します。したがって、これらの変数も式の一部です。
#クロージャーは、自由(バウンド)変数を含むことができるコードブロックです。これらの変数は、このコードブロックまたはグローバルコンテキストではなく、コードブロックが定義されている環境で定義されています。
2。閉鎖の簡単な例:
パッケージテスト;パブリッククラステスト{private int data = 0; private class inner {void print(){system.out.print.println(test.this.data);}} inenter getinnerinstance(){return new inner();}/** * @param args */public static baid main test(); t1.data = 1; test t2 = new test(); t2.data = 2; innerin1 = t1.getinnerinstance(); inner2 = t2.getinnerinstance(); inner1.print(); // 1inner2.print(); // 2}}}}}}要約します
上記は、Javaの閉鎖の単純なコード例に関するすべてです。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!