我正在创建一个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”
答案 0 :(得分:1)
您尚未设置任何值。您获得了int的默认值。顺便说一下,我在代码中看不到您为int设置了任何值。
答案 1 :(得分:1)
您的类S0和S1都有自己的MDA_EFSM实例(通过这种方式,您应该阅读Java命名约定)。您在S1中设置了k的值,但在S0中读取了另一个k的值。要实现您想要的k一定不是静态的。