将状态从一个实例转移到另一个实例的更优雅和有效的方法

时间:2011-12-15 08:36:40

标签: java pointers

赫敏正在从霍格沃茨之战中恢复,并用Java研究面向对象的编程(如图)。她决定根据自己的经验建立游戏 并确定以下主要实体:

人是一个存在。巫师也是人。

家养小精灵是一个存在。

鬼是一个存在。

然后她确定了一些状态和行动:

每个人都有一个名字。

每个人都有父亲和母亲。

每个巫师都表现出魔力。

每个家养小精灵也都表现出魔力。

每个幽灵都会滑到某个地方。

通过复制所有相关状态,可以实现将向导变为幽灵 向导实例到新创建的ghost实例。什么是更优雅 有效的方法?

我可以让新创建的Ghost实例指向Wizard实例指向的状态,然后删除向导实例吗?抱歉我的英语不好,我写标题时遇到了麻烦

2 个答案:

答案 0 :(得分:0)

Java不支持指针

您无法删除实例。

您可以让Ghost实例引用Wizard实例。但是我怀疑这是作业,当你做作业时,你需要得到预期的答案而不仅仅是一个有效的答案,所以我建议你按照你的要求复制细节。

效率是一项要求吗?我怀疑在这项任务中你不需要担心表现。如果是一个问题,你能说出性能要求是什么吗?

答案 1 :(得分:0)

ghost和向导应该有一些常见的数据,你将它封装在一个自己的类中。当你从向导中制作一个幽灵时,你只需要参考幽灵中的这个常见数据。删除对向导的所有引用,当您运行垃圾收集时,向导将“永远消失”。