[英]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.