我应该在Java中嵌套这些类吗?

时间:2016-12-09 17:39:06

标签: java class nested

我有两节课。当我第一次开始时,逻辑上对我来说是有意义的,因为它们直接相互关联:

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;
        }
    }
}

随着我的进步,我开始怀疑是否最好不要嵌套它们。如果我想向ClassA添加构造函数,例如:

public ClassA(List<ClassB> list)
这会造成困难。为了创建传递给构造函数的列表,它需要我有一个我当时可能没有的ClassA实例,这将首先打败这样一个构造函数的目的。

逻辑上,我只会将ClassB与ClassA联合使用,但我可能需要直接引用ClassB,而不需要ClassA实例。我应该嵌套这些类,还是将它们分开?

1 个答案:

答案 0 :(得分:0)

如果在ClassA实例不可用时要引用ClassB,则不要嵌套ClassB。

如果要嵌套,则需要一个对象ClassA来访问ClassB,因为它只能存在于ClassA的实例中。