我有2个类设置,都扩展了Module类。我尝试在其中一个中设置2个整数,在另一个中使用2个整数。 然而,当我执行所有内容时,它确实被设置(我知道因为调试)但是当用于打印'跑步,它仍然是0。
我不知道自己做错了什么。
模块类:
grep -P '^(?!Z12|C10)' input_file
Foo1:
public abstract class Module {
protected int min, max;
}
foo2的:
public class Foo1 extends Module {
public void setMinMax(){
min = 2;
max = 5;
}
}
答案 0 :(得分:1)
您有2个不同类的2个实例。 Foo1
的一个实例,其中包含自己的min
/ max
,以及Foo2
的一个实例,再次具有自己的{{1} }} / min
。
请注意,您的max
类提供了字段,每次实例化派生实例(Foo
或Foo1
)时,您都会获得一个带有新集的新类字段(包括从基类派生的字段)
答案 1 :(得分:0)
设置一个实例时,它对另一个实例没有影响。每个实例都有自己的字段。很可能你想象的是
public abstract class Module {
protected static int min, max;
}
这样,字段将在Module
的所有实例之间共享。您应该只从静态方法设置这些字段,最好是在Module
但是,我会避免这样做,或尽可能使用可变静态字段。