2016-12-09 7 views
0

私は2つのクラスを持っています。私が最初に始めたとき、それらは互いに直接に関連付けられているため、それは論理的に巣彼らに私のために意味を成していた:私が進むにつれてJavaでこれらのクラスをネストする必要がありますか?

class ClassA 
{ 
    List<ClassB> list = new ArrayList(); 

    public boolean add(ClassB cB) 
    { 
     return list.add(cB); 
    } 

    public ClassB get(int index) 
    { 
     return list.get(index); 
    } 

    class ClassB 
    { 
     public int test() 
     { 
      return 123; 
     } 
    } 
} 

が、私はそれが彼らの巣に良くないでしょうかしらようになりました。

public ClassA(List<ClassB> list) 

のように、ClassAにコンストラクタを追加したい場合は、次のようにします。コンストラクタに渡すリストを作成するには、ClassAのインスタンスを持っていなければならない場合があります。これは、最初にそのようなコンストラクタを持つ目的を無効にします。

論理的には、ClassAに関連してClassBを使用しますが、ClassAのインスタンスを持たずに直接ClassBを参照する必要があります。これらのクラスをネストするか、それらを分離する必要がありますか?

+0

ドキュメントは、javaチーム(https://docs.oracle.com/javase/tutorial/java/javaOO/whentouse.html)から確認できます。 –

+0

@BobLukensありがとう。 –

答えて

0

ClassAのインスタンスが使用できないときにClassBを参照する場合は、ClassBをネストしないでください。

ネストされている場合、ClassAのインスタンス内にしか存在しないため、ClassBにアクセスするにはClassAオブジェクトが必要です。

関連する問題