19

クラスをネストできるのはいつですか? 私が見る最も一般的な利点は、「共有スコープ」(クラス間での変数の使用) です。

これは、ネストされたクラスを独自のファイルに入れ、コンストラクターを介して引数を渡すよりも、魅力的ではない/ベストプラクティスではありませんか?

4

4 に答える 4

20

ネストされたクラスを使用する理由はいくつかあります。

  1. これは、1 つの場所でのみ使用されるクラスを論理的にグループ化する方法です。

  2. カプセル化を増加させます。

  3. 入れ子になったクラスは、より読みやすく保守しやすいコードにつながります。

  4. 子クラスから親クラスへの接続は、各クラスの変数とメソッドを視覚的に示すため、より簡単です。

于 2013-01-21T11:42:27.623 に答える
1

私によると、ネストされたクラスが使用されたときに私が知っている1つのケースは、1つのオブジェクト(OBJ1)が2番目のオブジェクト(OBJ2)と緊密にバインドされていることを確認すると、2番目のオブジェクト(OBJ2)なしでは最初のオブジェクト(OBJ1)を作成できません。たとえば、従業員オブジェクトがあり、関連付けられたオブジェクトの 1 つが給与であり、給与オブジェクトを個別に作成することはできません。給与を支払う従業員がいないためです。
私が間違っている場合は、フィードバックを提供してください。

マップまたはマップを使用している 2 番目のケースでは、ネストされたクラスを使用してマップのマップを削除し、コードを理解しやすくすることができます。

3番目に、クライアント側にデータを送信したい場合、すべてのデータを持つ単一のオブジェクトで送信できます:)

外部クラスのコンポーネントを定義できるものが必要な場合、またはアダプターを定義したい場合。

于 2016-05-16T05:08:48.620 に答える
1

すでに述べたものに加えて、もう 1 つの利点は次のとおりです。

  • 入れ子になったクラスは、複数の実装継承を実現するのにも役立ちます(参照: Java で考える、369 ページ - セクション「内部クラスを使用する理由」)。私の知る限り、Java でそれを達成する方法は他にありません。
于 2014-03-01T14:08:17.400 に答える
0

プライベートな静的クラスは、関連するフィールドのグループをメソッドに渡し、クラス内のいくつかのメソッド呼び出しで同じデータのグループを操作する必要がある場合に便利です。リンクを単一のユニットとしてグループ化するために使用される、外部に公開されない LinkedList.Node クラスに似ています。

于 2013-01-21T12:11:58.330 に答える