繁体   English   中英

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

[英]Can a static variable be updated by calling a method from another class in this circumstance? Java

说,我的商店班级有此信息...

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种产品的产品信息),我想询问用户是否要返回主菜单(.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 );
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM