Java 在游戏中保持连续总计数的最佳方法

Java 在游戏中保持连续总计数的最佳方法,java,static,Java,Static,我正在用Java做一个游戏。我是一个初学者程序员。这是一款类似RPG的奇幻游戏。游戏就要开始了,我将要进行一个库存系统。这里有店主,这些店主的存货有限。我还在学习内存管理和消耗,所以我的问题如下 如果劳雷尔是店主,那么追踪劳雷尔的10种药水的最有效方法是什么 static int laurelInventory = 10; 然后,当英雄购买药剂时,它只会是: laurelInventory = laurelInventory - qtyPurchased; 我想了解的是,我是否经常使用st

我正在用Java做一个游戏。我是一个初学者程序员。这是一款类似RPG的奇幻游戏。游戏就要开始了,我将要进行一个库存系统。这里有店主,这些店主的存货有限。我还在学习内存管理和消耗,所以我的问题如下

如果劳雷尔是店主,那么追踪劳雷尔的10种药水的最有效方法是什么

 static int laurelInventory = 10;
然后,当英雄购买药剂时,它只会是:

laurelInventory = laurelInventory - qtyPurchased;
我想了解的是,我是否经常使用static会遇到麻烦,或者是否有更好的方法来存储运行计数和总数。这对我来说更干净,而不是担心我创建的实例和管理该实例


另外,对于内存管理的任何其他反复思考,请创建一个ShopOwner类,该类将具有一个带有递增库存和递减库存操作的库存变量。然后可以将该类实例化为laurel。然而,我建议您阅读面向对象的软件设计。看看设计模式。

创建一个ShopOwner类,该类将有一个带有递增库存和递减库存操作的库存变量。然后可以将该类实例化为laurel。然而,我建议您阅读面向对象的软件设计。看看设计模式。

创建一个ShopOwner类,该类将有一个带有递增库存和递减库存操作的库存变量。然后可以将该类实例化为laurel。然而,我建议您阅读面向对象的软件设计。看看设计模式。

创建一个ShopOwner类,该类将有一个带有递增库存和递减库存操作的库存变量。然后可以将该类实例化为laurel。然而,我建议您阅读面向对象的软件设计。看看设计模式。

使用Java和其他面向对象语言,您希望为域中的各种“事物”创建对象。因此,您可能会有一个带有实例的存储类,而不是一个静态变量。例如

public class Store {

    // In real life, probably per-item, but keeping it simple here.
    private int inventoryLevel;

    public int getInventoryLevel() { return inventoryLevel; }

    public void setInventoryLevel(int level) {
        this.inventoryLevel = level;
    }

    public void increaseInventoryLevelBy(int amount) {
        this.inventoryLevel += amount;
    }

    public void decreaseInventoryLevelBy(int amount) {
        this.inventoryLevel -= amount;
    }
}
然后设置存储:

Store laurelStore = new Store();
laurelStore.setInventoryLevel(500);
当有人想买东西时:

laurelStore.decreaseInventoryLevelBy(numPurchased);
等等


这样做有很好的理由(与使用静态变量相反),但这是一个很大的讨论,因此您会发现阅读面向对象编程来理解这些理由很有用。祝你好运兄弟。

使用Java和其他面向对象语言,您希望为域中的各种“事物”创建对象。因此,您可能会有一个带有实例的存储类,而不是一个静态变量。例如

public class Store {

    // In real life, probably per-item, but keeping it simple here.
    private int inventoryLevel;

    public int getInventoryLevel() { return inventoryLevel; }

    public void setInventoryLevel(int level) {
        this.inventoryLevel = level;
    }

    public void increaseInventoryLevelBy(int amount) {
        this.inventoryLevel += amount;
    }

    public void decreaseInventoryLevelBy(int amount) {
        this.inventoryLevel -= amount;
    }
}
然后设置存储:

Store laurelStore = new Store();
laurelStore.setInventoryLevel(500);
当有人想买东西时:

laurelStore.decreaseInventoryLevelBy(numPurchased);
等等


这样做有很好的理由(与使用静态变量相反),但这是一个很大的讨论,因此您会发现阅读面向对象编程来理解这些理由很有用。祝你好运兄弟。

使用Java和其他面向对象语言,您希望为域中的各种“事物”创建对象。因此,您可能会有一个带有实例的存储类,而不是一个静态变量。例如

public class Store {

    // In real life, probably per-item, but keeping it simple here.
    private int inventoryLevel;

    public int getInventoryLevel() { return inventoryLevel; }

    public void setInventoryLevel(int level) {
        this.inventoryLevel = level;
    }

    public void increaseInventoryLevelBy(int amount) {
        this.inventoryLevel += amount;
    }

    public void decreaseInventoryLevelBy(int amount) {
        this.inventoryLevel -= amount;
    }
}
然后设置存储:

Store laurelStore = new Store();
laurelStore.setInventoryLevel(500);
当有人想买东西时:

laurelStore.decreaseInventoryLevelBy(numPurchased);
等等


这样做有很好的理由(与使用静态变量相反),但这是一个很大的讨论,因此您会发现阅读面向对象编程来理解这些理由很有用。祝你好运兄弟。

使用Java和其他面向对象语言,您希望为域中的各种“事物”创建对象。因此,您可能会有一个带有实例的存储类,而不是一个静态变量。例如

public class Store {

    // In real life, probably per-item, but keeping it simple here.
    private int inventoryLevel;

    public int getInventoryLevel() { return inventoryLevel; }

    public void setInventoryLevel(int level) {
        this.inventoryLevel = level;
    }

    public void increaseInventoryLevelBy(int amount) {
        this.inventoryLevel += amount;
    }

    public void decreaseInventoryLevelBy(int amount) {
        this.inventoryLevel -= amount;
    }
}
然后设置存储:

Store laurelStore = new Store();
laurelStore.setInventoryLevel(500);
当有人想买东西时:

laurelStore.decreaseInventoryLevelBy(numPurchased);
等等



这样做有很好的理由(与使用静态变量相反),但这是一个很大的讨论,因此您会发现阅读面向对象编程来理解这些理由很有用。祝你好运兄弟。

好问题,但先读一下依赖注入,读一下Springframework、Guice等框架etc@MariuszS真正地对于一个刚开始的程序员来说?我认为这个问题要基本得多——你知道创建对象吗?你应该有一个列表/数组,而不是每个商店都有一个变量,每个商店都是该结构中的一个条目。在伪代码中,
shop['laurel']=shop['laurel']-qtyPurchased
将所有者的概念与商店分开;将库存概念与商店分开(玩家也有库存);商店变成了库存的容器,库存中有一个自己的问题,但首先要阅读依赖注入,然后阅读Springframework、Guice等框架etc@MariuszS真正地对于一个刚开始的程序员来说?我认为这个问题要基本得多——你知道创建对象吗?你应该有一个列表/数组,而不是每个商店都有一个变量,每个商店都是该结构中的一个条目。在伪代码中,
shop['laurel']=shop['laurel']-qtyPurchased
将所有者的概念与商店分开;将库存概念与商店分开(玩家也有库存);商店变成了库存的容器,库存中有一个自己的问题,但首先要阅读依赖注入,然后阅读Springframework、Guice等框架etc@MariuszS真正地对于一个刚开始的程序员来说?我认为这个问题要基本得多——你知道创建对象吗?你应该有一个列表/数组,而不是每个商店都有一个变量,每个商店都是该结构中的一个条目。在伪代码中,
shop['laurel']=shop['laurel']-qtyPurchased
将所有者的概念与商店分开;将库存概念与商店分开(玩家也有库存);商店变成了库存的容器,库存有一个所有者的问题,但是