在这种情况下,可以通过从另一个类调用方法来更新静态变量吗?JAVA

在这种情况下,可以通过从另一个类调用方法来更新静态变量吗?JAVA,java,class,methods,static,instances,Java,Class,Methods,Static,Instances,喂,我的商店类有这个信息 public class Store { private Product product1, product2, product3; private static int productCount = 0; public Store() { product1 = new Product(); product2 = new Product(); product3 = new Product();

喂,我的商店类有这个信息

public class Store {

    private Product product1, product2, product3;
    private static int productCount = 0;

    public Store() {
        product1 = new Product();
        product2 = new Product();
        product3 = new Product();
    }

public void setData(String name, int demand, double setup, double unit,
            double inventory, double selling) {
        if (productCount == 0) {

            product1.setName(name);
            product1.setDemand(demand);
            product1.setSetUpCost(setup);
            product1.setUnitCost(unit);
            product1.setInvCost(inventory);
            product1.setSellPrice(selling);

            productCount = 1;
        } else if (productCount == 1) {

            product2.setName(name);
            product2.setDemand(demand);
            product2.setSetUpCost(setup);
            product2.setUnitCost(unit);
            product2.setInvCost(inventory);
            product2.setSellPrice(selling);

            productCount = 2;
        } else if (productCount == 3) {

            product3.setName(name);
            product3.setDemand(demand);
            product3.setSetUpCost(setup);
            product3.setUnitCost(unit);
            product3.setInvCost(inventory);
            product3.setSellPrice(selling);

            productCount = 3;

        }
    }
但是,在我的接口类中

private void enterData() {
// Assume the user put in the required inputs here

Store.setData(name, demandRate, setupCost, unitCost, inventoryCost, sellingPrice );
}
当我尝试使用这段代码时,productCount变量从不从零更改。另外,当我使用另一种方法显示产品数据时,它从不显示任何信息,如名称等(就好像从来没有输入任何内容)。我试图存储此信息的方式有问题

我只想为3种产品设置数据,但我的程序不会存储任何信息。我的一个猜测是,我不能静态地尝试解决存储产品信息的非静态方法。如果是这样的话,我很困惑我怎么能只存储三种产品的信息

除此之外(假设您现在可以存储3种产品的产品信息),我想询问用户,如果他们尝试添加信息超过3次,是否希望返回主菜单(a.run()方法)或替换其中一种产品的产品信息(现在已满)。我不知道该怎么做


谢谢。

您提供的代码甚至不应该编译

你需要像这样的东西:

public class YourInterfaceClass {

    private Store store = new Store();

    ...

    private void enterData() {
         // Assume the user put in the required inputs here
         store.setData(name, demandRate, setupCost, unitCost, inventoryCost, sellingPrice );
    }

}

在这种情况下,您可以从实例方法访问静态数据成员,这很好。但是,客户端代码似乎正在以静态方法访问setData(),这将引发编译器异常。这是您正在编译和运行的实际代码吗?您是否尝试创建存储对象,然后对其应用setData?