匿名のインナークラスとは何ですか?

オブジェクト指向のコンピュータープログラミングでは、匿名のインナークラスはメソッド内で宣言されているが名前が付けられていないクラスです。匿名の内部クラスには、アクセスできる変数の範囲の制限など、通常のクラスとは異なるいくつかの制限があります。匿名の内部クラスを使用することでソースコードをより読みやすくすることができる非常に具体的な状況がいくつかありますが、それは主に、個別のクラスの生成がそれを複雑にする可能性のあるカプセル化を実施するために使用されます。匿名の内部クラス、および一般的な内部クラスは、特に複雑なオブジェクトのカプセル化を実現するのに役立ちます。個別の外部のクラスに依存するクラスを作成し、それらを人為的に、潜在的にコンポーネントの一部を露出させる必要があるのではなく、匿名の内部クラスはtできます。つまり、2つはしっかりと一緒になります。

いくつかのプログラミング言語では、匿名の内部クラスは単一の相続の制限を克服するのに役立ちます。オブジェクトが1つのクラスから継承され、その後別のクラスにアクセスする必要がある場合、その場で内部クラスを生成してから、適切なハンドラーに渡すことができます。この手法は、コールバックとイベントリスナーによく見られます。唯一の選択肢は、1つまたは2つの方法のみがオーバーライドされる2番目のクラス全体を作成することです。

匿名の内部クラスには、カプセル化の破壊を防ぎ、範囲を実施するためのいくつかの制限があります。主な制限は、匿名の内部クラスが、これらの変数が最終として宣言されない限り、それが存在する方法の変数にアクセスできないことです。これは、内側のクラスが、それが巣を作るクラスの寿命と方法を超えて機能し続けることができるためです。ラッピングの変数クラスは寿命が終わったら破壊されるため、保持されている内部クラスの参照は即座に無効になります。これの唯一の例外は、インスタンスを超えて存在するため、最終変数です。

匿名の内側クラスのより具体的な用途の1つは、コード保護です。多くのOOP言語は、反射と呼ばれるメカニズムを提供します。リフレクションにより、プログラムは別のクラスを分析し、そのメンバー変数とメソッドが何であるかを確認できますが、コード自体ではありません。匿名の内部クラスを使用することにより、内側クラスの内容は反射から保護され、より大きなクラスの内側の仕組みは効果的に隠されます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?