【问题标题】:Object variable independence对象变量独立性
【发布时间】:2018-08-10 04:23:57
【问题描述】:

在 java 中重新创建 pokemon,但有一个小问题

由于某种原因,当将 Move 对象的相同实例分配给两个不同的 Pokemon 时,当一个 Pokemon 使用该招式时,另一个 Pokemon 招式的 PP 值也会下降 1,而它们应该相互独立.我已经做了很多自学,到目前为止,我认为在想要实现类似的目标时使用了静态变量,但我在这里没有使用任何静态变量,所以我不确定它为什么会发生。我是否需要创建同一移动的不同实例以避免这种情况,或者当移动的变量属于两个单独的“口袋妖怪”对象时,是否有更简单的方法让它们独立?我在下面为我的 Move 类包含了一些代码。

public class Move
{
    private final String name;
    private final String type;
    private int damage;
    private double accuracy;
    private int powerPoints;
    private int maxPowerPoints;
    private boolean priority; // label for speed priority
    private boolean physical; // physical label
    private boolean special; // special label
}

【问题讨论】:

  • 那只是move类的定义。对于您的问题,重要的是查看移动对象的实例化和使用。请创建一个minimal reproducible example。为此,请花一些时间来最小化演示您正在观察的问题所需的代码。
  • 帖子下方有一个删除按钮。
  • 不让我删除它,因为有回应......

标签: java class object static instance


【解决方案1】:

我是否需要为同一个动作创建不同的实例以避免这种情况 或者有没有更简单的方法让 Move 的变量独立 当它们属于两个单独的“口袋妖怪”对象时?

是的,您应该创建一个新实例。 阅读更多关于 java 中的参考资料,即这里http://www.informit.com/articles/article.aspx?p=174371&seqNum=4

【讨论】:

  • 阅读有帮助!谢谢!您认为将来必须创建许多相同动作的实例来学习如何使用工厂时会是理想的吗?
  • 我不太了解口袋妖怪的战斗系统,但绝对可以从使用工厂模式或原型模式中受益。
猜你喜欢
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多