2013-02-18 56 views
0

我需要編寫一個父類(Plate)和一些子類(WoodenPlate,PorcelainPlate等),每個子對象都應該有一個從1開始,然後是2等的序列號。 Where我應該存儲這些信息嗎?我可以在父對象中增加一個計數器嗎?帶有序列號的Java對象

+4

您需要在Child Class中有一個靜態計數器。 – 2013-02-18 19:00:53

+0

哪些信息? 「當前」序列號? – 2013-02-18 19:01:05

+0

是的,目前的序列號。如果我把計數器放在子類中,它不會在所有情況下都增加,還是會呢?因此,例如, 新的WoodPlate將具有序列號1 ,但是,新的PorcelainPlate也將具有序列號1而不是2 ... – Ragnr 2013-02-18 19:09:33

回答

1

這是怎麼了你對你Child類的應該是這樣的:

class WoodenPlate extends Plate { 
    private static int counter = 0; 
    private int serialNumber; 

    public WoodenPlate() { 
     serialNumber = ++counter; 
    } 
} 

然後爲WoodenPlate每個實例,您可以訪問serialNumber使用公共存取

您可以定義休息你的Child類這樣的。他們每個人都有一個static計數器和一個serialNumber字段。


如果你不想計數從1每次來回開始Child,但只是想計數從以前的一個繼續不管哪個兒童類被實例化的,那麼你應該在Parent這些領域等級:

class Parent { 
    protected static int counter = 0; 
    protected int count; 

    public int getCount() { 
     return count; 
    } 
} 

然後從您的每個Child類中刪除該字段。

+0

是的,這對於編制一個孩子類的對象是完美的,但是我需要的數量太多所有的孩子班。 :/ 所以當我打電話給新的childA();它應該有count 1和新的childB();它應該有數2 – Ragnr 2013-02-18 19:15:58

+0

啊 - 我看到謝謝! – Ragnr 2013-02-18 19:16:53

+0

@Ragnr。我以爲你想爲每個孩子,計數應該以'1'開頭。如果你希望你的'count'繼續像'1,2,3'一樣,不管哪個Child類被實例化,那麼你需要在'Parent'類中有這些字段。 – 2013-02-18 19:19:09