【发布时间】:2021-01-25 23:56:57
【问题描述】:
这里有三个相互关联的问题。我已经尝试寻找答案,但我无法找到/应用可能的现有答案来解决我的问题。考虑以下类:
import java.util.ArrayList;
public class Container
{
private ArrayList<Box> boxList = null;
public Container()
{
this.infoList = new ArrayList<Box>();
}
public ArrayList<Box> getBoxList()
{
return this.boxList;
}
据我了解,为了将此类用作稍后创建的Boxes 的容器,我必须构造它的一个实例,然后调用getter 方法来访问该列表。例如,
Container newContainer = new Container();
ArrayList<Box> list = newContainer.getBoxList();
... // Creating boxes and their contents
Box box = list.get(0); // First box in list
Item item = box.getItem(); // etc.
我可以在哪里与 item 合作。
问题 1: 据我所知,为了调用一个类的私有字段,需要该类的实例。如果我坚持保持拥有Container 的多个实例的可能性,为了访问上面在不同的类/方法中创建的newList,我是否必须继续将它作为参数传递给任何调用它的方法(那里会很多)?当然,另一个类中的方法不知道newList是什么。
问题 2:如果只打算存在一个 Container,最好只替换
private ArrayList<Box> boxList = null;
与
private static ArrayList<Box> boxList = new ArrayList<Box>;
然后去掉构造函数,将Container的所有方法声明为static,直接调用Container.getBoxList()?
问题 3: 是否存在用于仅存储对象和处理对象(添加到列表、删除等)的类的常规通用设置,例如此处的 Container?该类与其他类的通信通常是如何实现的?
【问题讨论】:
标签: java containers