赫敏正在从霍格沃茨之战中恢复,并用Java研究面向对象的编程(如图)。她决定根据自己的经验建立游戏 并确定以下主要实体:
人是一个存在。巫师也是人。
家养小精灵是一个存在。
鬼是一个存在。
然后她确定了一些状态和行动:
每个人都有一个名字。
每个人都有父亲和母亲。
每个巫师都表现出魔力。
每个家养小精灵也都表现出魔力。
每个幽灵都会滑到某个地方。
通过复制所有相关状态,可以实现将向导变为幽灵 向导实例到新创建的ghost实例。什么是更优雅 有效的方法?
我可以让新创建的Ghost实例指向Wizard实例指向的状态,然后删除向导实例吗?抱歉我的英语不好,我写标题时遇到了麻烦
答案 0 :(得分:0)
Java不支持指针
您无法删除实例。
您可以让Ghost实例引用Wizard实例。但是我怀疑这是作业,当你做作业时,你需要得到预期的答案而不仅仅是一个有效的答案,所以我建议你按照你的要求复制细节。
效率是一项要求吗?我怀疑在这项任务中你不需要担心表现。如果是一个问题,你能说出性能要求是什么吗?
答案 1 :(得分:0)
ghost和向导应该有一些常见的数据,你将它封装在一个自己的类中。当你从向导中制作一个幽灵时,你只需要参考幽灵中的这个常见数据。删除对向导的所有引用,当您运行垃圾收集时,向导将“永远消失”。