Getter方法返回0值

时间:2019-05-01 03:25:21

标签: java

我正在创建一个MDA_EFSM类,它具有两个变量int k和int [] listA,并创建了setter和getter方法来初始化这两个变量。然后,我在另一个类中调用MDA_EFSM的getter方法。 getter方法应该返回最近设置的值,但它返回的是“ 0”。

public class MDA_EFSM {
    int k;
    public int listA[] = {0, 1};   

    public int getK() {
        return k;
    }
    public void setK(int k) {
        this.k = k;
    }

    public int[] getA() {
        return listA;
    }
}

public class State {
    MDA_EFSM mda = new MDA_EFSM();

    public void setMda(MDA_EFSM mdaefsm)
    {
        mda = mdaefsm;
    }
    public MDA_EFSM getMda() {
        return mda;
    }
}

public class S0 extends State{

    public void Insert_cups(int n){
        if (n > 0){
            int value = mda.getK();
        }
    }
}

我要在一类中设置值,并从另一类中获取该值。这是该类的代码片段:

public class S1 extends State{
    public void Insert(int n){
        if (n > 0){
            mda.setK(n);
        }
    }
}

我希望输出最近设置的值,但是getter方法返回“ 0”

2 个答案:

答案 0 :(得分:1)

您尚未设置任何值。您获得了int的默认值。顺便说一下,我在代码中看不到您为int设置了任何值。

答案 1 :(得分:1)

您的类S0和S1都有自己的MDA_EFSM实例(通过这种方式,您应该阅读Java命名约定)。您在S1中设置了k的值,但在S0中读取了另一个k的值。要实现您想要的k一定不是静态的。