Java でのフレンド概念シミュレーション
特定のシナリオでは、別のパッケージ内のクラスの非パブリック メソッドにアクセスしたい場合があります。サブクラス関係を確立します。 C プログラミング言語では「フレンド」の概念を通じてこれが可能ですが、Java には直接同等のものはありません。ただし、この機能をエミュレートする賢い回避策があります。
次の例を考えてみましょう: 'montague' パッケージに属するクラス Romeo は、' に存在するクラス ジュリエットの非パブリック メソッドにアクセスする必要があります。キャピュレット」のパッケージ。通常、これにはロミオがジュリエットのサブクラスである必要があります。しかし、この場合、別のアプローチが提案されています。
Juliet は、'Romeo.Love' 型の引数を受け入れる 'cuddle' という名前の静的メソッドを宣言します。これはセキュリティ対策として機能し、Romeo だけがこのメソッドを呼び出せるようにします。一方、Romeo は、コンストラクターがプライベートと宣言されている「Love」という名前のパブリック クラスを定義します。これは、他のクラスが 'Romeo.Love' をインスタンス化できず、Romeo 自体だけがそのコンストラクターにアクセスできることを意味します。
このメカニズムを利用することで、Juliet は、 「Romeo.Love」のインスタンス。また、「Romeo.Love」のコンストラクターは Romeo 自体に制限されているため、意図したセキュリティは維持されます。
要約すると、この回避策は、明確に定義された C の「フレンド」概念を Java でシミュレーションできるようにします。クラスの権限とセキュリティメカニズム。
以上がJava は非パブリック メソッドにアクセスするための C のフレンド概念をシミュレートできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。