gpt4 book ai didi

Java - 为构造函数的每个实例定义不同的变量?

转载 作者:行者123 更新时间:2023-12-01 22:33:29 25 4
gpt4 key购买 nike

抱歉,如果标题措辞不正确,如果与我在这里描述的不完全一致,请更改它。

因此,我正在创建一个程序来模拟一些虚构的生物,并且我需要许多对象,这些对象都存储有关每个生物的不同统计数据,并且其值都可以同时检查。这样做的正确方法是什么?

作为引用,这是我现在拥有的代码。

public class Model {

static int mfood;
static int mdefense;
static int mattack;
static int mhealth;
static int msize;
static int magg;
static boolean update = false;

public Model(int food, int meat, int defense, int attack, int health, int agg) {

mfood = food;
msize = size;
mdefense = defense;
mattack = attack;
mhealth = health;
magg = agg;

}

问题当然是,我有一些变量来存储放入构造函数中的值,这些值在每次调用构造函数时都会更改。如果我一次只运行一个对象,那么这种方法很有效,但很可能会运行大约一打对象。这些值也需要在其他方法中调用,例如

    public void Attack() {
mhealth = (mhealth + mdefense) - mattack;
}

mattack 变量将是与 mhealth 和 mdefense 变量不同的对象。

感谢您提供的任何帮助,我确信这是一个简单的修复,但我在任何地方都找不到答案。

最佳答案

您的变量是静态,这意味着它们存在于类级别,而不是单个对象级别。这意味着无论您创建(新的)多少个对象,它们都共享相同的变量。删除 static 关键字,每个对象都将拥有自己的变量副本。

关于Java - 为构造函数的每个实例定义不同的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com