java - 在与 java 中的字段相同的类中添加自定义列表对象的可能现实原因?
问题描述
我希望这个问题不会太模糊或太宽泛而无法回答。我可以在任何需要的地方创建列表;如果我需要它作为静态字段,我也可以在其他类中使用它。为什么要在同一个类中添加自定义列表作为字段?这种方法在 OOP 中的优点和缺点是什么?你能解释这些方法的结果的差异吗?
编辑:我通常按照建议使用自定义列表来存储一个类的多个实例。我检查了其他人的代码,我看到这些方法中的类与其他类没有父子关系,但它被定义为与存储类本身的多个实例的字段相同的类中的列表对象。它让我想起了无限镜效果。所以,我想知道我在这里缺少什么。
class Record {
String name;
String surname;
String phoneNumber;
ArrayList<Record> phoneBook;
}
class Main {
String x;
String y;
ArrayList<Record> phoneBook;
}
解决方案
根据您所说的,假设您有 10 个 Record 类的实例,并假设在每个类中您存储了所有这 10 个实例的列表,那么您实际上将有 100 个,并且根据您的操作,您的应用程序的性能可能是做作的。
另一方面,假设您有 Record 类的 10 个实例,但您只将实例本身存储在列表中,这没有任何意义,根本没有用处。
最后,合乎逻辑的事情是,当创建一个列表时,它是存储类的多个实例,然后您可以访问每个实例的数据,因此在这种情况下,在类本身中使用列表是没有用的。
推荐阅读
- android - 无法安装应用程序:INSTALL_FAILED_DEXOPT,Android 5.0 发生这种情况
- c# - Azure 搜索,将数组与给定数组匹配
- java - 如何在 Java 中构建一个非常简单的多线程管道?
- python-3.x - OSX Catalina GCC/PIP 问题
- json - 使用 Jmeter JSON Extractor 从具有顶级数组的 JSON 中提取值
- laravel - 将 Vue 变量或 Vue 组件返回给 Laravel Blade
- haskell - 模式匹配:使用占位符
- google-app-engine - 将数据从另一个 GCP 项目的 App Engine 搜索导入到 GCP 项目的 App Engine 搜索
- typescript - 打字稿循环遍历具有索引和值的字符串
- javascript - 未捕获的语法错误:使用 babel 编译后无法在模块外部使用 import 语句