簡體   English   中英

Java中具有全局變量的抽象類未設置嗎?

[英]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類提供了字段,並且每次實例化( Foo1Foo2 )派生實例時,您都會獲得一個具有新字段集(包括從基類派生的字段)的新類。

設置一個實例時,它對另一個實例沒有影響。 每個實例都有自己的字段。 您最想像的是

public abstract class Module {
     protected static int min, max;
}

這樣,字段將在Module所有實例之間共享。 您只能通過靜態方法設置這些字段,最好是在Module

但是,我將避免這樣做,或者盡可能避免使用可變的靜態字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM