Java 我正在创建一个库程序。我应该将整个对象作为书本或其指针进行传输吗?

Java 我正在创建一个库程序。我应该将整个对象作为书本或其指针进行传输吗?,java,object,memory,Java,Object,Memory,在我的程序中,我的书是对象,这些书保存在书架对象中,书架对象保存在图书馆对象中。在书架对象内,我有一本“参考”书,上面写着书架上放着什么书。但我也有一个ArrayList,其中包含“参考”书的不同实例。同样,它包含许多引用唯一对象的引用变量,它们并不都引用“参考”书 所以我的问题是。。。 当将一本书传输给用户时,我是否应该将每个唯一的引用变量传输给用户并从列表中删除引用变量? 或 我应该放弃这个列表,把“参考”书的指针复制给用户吗 注意:书架上有一定数量的书,可以从书架上取下。我意识到第一个选择

在我的程序中,我的书是对象,这些书保存在书架对象中,书架对象保存在图书馆对象中。在书架对象内,我有一本“参考”书,上面写着书架上放着什么书。但我也有一个ArrayList,其中包含“参考”书的不同实例。同样,它包含许多引用唯一对象的引用变量,它们并不都引用“参考”书

所以我的问题是。。。 当将一本书传输给用户时,我是否应该将每个唯一的引用变量传输给用户并从列表中删除引用变量? 或 我应该放弃这个列表,把“参考”书的指针复制给用户吗


注意:书架上有一定数量的书,可以从书架上取下。我意识到第一个选择是浪费记忆。另外,在第二个选项中,我将使用int变量跟踪剩余的图书数量。我不会记录那个书架拥有的图书数量。

我很好奇:为什么同一本书有多份
图书
对象?你说过,你有很多地方都有这本书,它们并不都是同一本书的参考资料。为什么不呢?我可以看到图书馆拥有的每本书都有一本
,但除此之外,我没有看到它…Java中没有指针,只有引用和原语。那么,对不起,当你在Java中创建一个对象时,它会为你刚刚创建的对象创建一个引用变量。当你将两个对象设置为彼此相等时,它实际上会创建对同一对象的两个“引用”。这就是我的问题。我是否应该简单地将参考变量传递给指向单个“参考”书的用户?或者我应该为书架上的每一本书准备一本新书,并将整个“书”对象传递给用户?我提出这个问题的原因是,在记忆和概念转移与物理转移方面,保护与开放是对的。哪个更好?您的数据模型似乎很复杂。尽管我不怀疑它的有效性,但您可能引入了比您的目的所需要的更多的复杂性。与其嵌套对象,不如简单地创建书的“库”和“书架”属性?只有你才能真正理解你的抽象,也许它工作得很好。就我而言,在我看来,你最感兴趣的是管理书籍。一本书“有一个属于它的书架”和“有一个存放它的图书馆”。我会努力使这些领域。我预计这会更简单。