首页 > 解决方案 > 在与 java 中的字段相同的类中添加自定义列表对象的可能现实原因?

问题描述

我希望这个问题不会太模糊或太宽泛而无法回答。我可以在任何需要的地方创建列表;如果我需要它作为静态字段,我也可以在其他类中使用它。为什么要在同一个类中添加自定义列表作为字段?这种方法在 OOP 中的优点和缺点是什么?你能解释这些方法的结果的差异吗?

编辑:我通常按照建议使用自定义列表来存储一个类的多个实例。我检查了其他人的代码,我看到这些方法中的类与其他类没有父子关系,但它被定义为与存储类本身的多个实例的字段相同的类中的列表对象。它让我想起了无限镜效果。所以,我想知道我在这里缺少什么。

class Record {
        String name;
        String surname;
        String phoneNumber;
        ArrayList<Record> phoneBook; 
    }

class Main {
    String x;
    String y;
    ArrayList<Record> phoneBook; 

}

标签: javalistooparraylistfield

解决方案


根据您所说的,假设您有 10 个 Record 类的实例,并假设在每个类中您存储了所有这 10 个实例的列表,那么您实际上将有 100 个,并且根据您的操作,您的应用程序的性能可能是做作的。

另一方面,假设您有 Record 类的 10 个实例,但您只将实例本身存储在列表中,这没有任何意义,根本没有用处。

最后,合乎逻辑的事情是,当创建一个列表时,它是存储类的多个实例,然后您可以访问每个实例的数据,因此在这种情况下,在类本身中使用列表是没有用的。


推荐阅读