[英]Abstract class in Java with global variables aren't setting?
我有2个类的设置,都扩展了Module类。 我试图在其中一个中设置2个整数,在另一个中使用2个整数。 但是,当我执行所有操作时,它的确设置了(我知道是由于调试),但是当运行“打印”方法时,它仍然为0。
我不知道我在做什么错。
模块类别:
public abstract class Module {
protected int min, max;
}
Foo1:
public class Foo1 extends Module {
public void setMinMax(){
min = 2;
max = 5;
}
}
Foo2:
public class Foo2 extends Module {
public void printMinMax(){
System.out.print("Min: " + min + " Max: " + max);
}
}
您有2个不同类的2个实例。 一的一个实例Foo1
,有自己的min
/ max
和的一个实例Foo2
有自己的, 又 min
/ max
。
请注意,您的Foo
类提供了字段,并且每次实例化( Foo1
或Foo2
)派生实例时,您都会获得一个具有新字段集(包括从基类派生的字段)的新类。
设置一个实例时,它对另一个实例没有影响。 每个实例都有自己的字段。 您最想像的是
public abstract class Module {
protected static int min, max;
}
这样,字段将在Module
所有实例之间共享。 您只能通过静态方法设置这些字段,最好是在Module
但是,我将避免这样做,或者尽可能避免使用可变的静态字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.