第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從另一個(gè)類添加到對象 ArrayList

從另一個(gè)類添加到對象 ArrayList

哈士奇WWW 2022-05-25 17:36:00
我有一個(gè)名為 Item 的類。public class Item {private int code;private String name;private double price;private int quantity;public Item(int code, String name, double price, int quantity) {    setCode(code);    setName(name);    setPrice(price);    setQuantity(quantity);}//Item getters and setters我有一個(gè)名為 Stock 的類,它創(chuàng)建一個(gè) ArrayList 的項(xiàng)目。public class Stock {private ArrayList<Item> stock;public Stock() {    stock = new ArrayList<Item>();}public ArrayList<Item> getStock() {    return stock;}我還有一個(gè)名為 ItemRegister 的類,它向 Stock 中添加了一個(gè)項(xiàng)目。public class ItemRegister extends Stock {public void registerItem(String name, double price) {    getStock().add(new Item(setItemCode(), name, price, 0));}private int setItemCode() {    return getStock().size() + 1;}我正在使用單元測試來查看我是否確實(shí)向 Stock 中添加了一個(gè)項(xiàng)目。public class ItemRegisterTest {@Testpublic void testIfHasRegisteredItemInStock() {    Stock s = new Stock();    assertTrue(s.getStock().size() == 0);    ItemRegister i = new ItemRegister();            i.registerItem("Oleo", 20.0);    assertTrue(s.getStock().size() == 1);}}當(dāng)我運(yùn)行這些測試時(shí),它返回一個(gè)錯(cuò)誤。第二assertTrue,如果我用對象測試i它會(huì)返回 true 但我想要添加Stock而不是ItemRegister因?yàn)槿绻院笪蚁胱稍僑tock我會(huì)打電話Stock而不是ItemRegister。
查看完整描述

2 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

從評論中,您可以做的可能是更改父子關(guān)系并讓 ItemRegister 持有 Stock 對象的實(shí)例。因此,您可以像這樣修改 ItemRegister 類:


public class ItemRegister  {

    Stock s;

    public ItemRegister(Stock s) {

        this.s = s;

    }


    public void registerItem(String name, double price) {

        s.getStock().add(new Item(setItemCode(), name, price, 0));

    }


    private int setItemCode() {

        return s.getStock().size() + 1;

    }

}

然后,您最初編寫的測試代碼只需稍作修改即可為真ItemRegister i = new ItemRegister(s);,并且您可以在 Stock 對象的一個(gè)實(shí)例上工作。


查看完整回答
反對 回復(fù) 2022-05-25
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

我想要的是添加Stock而不是ItemRegister因?yàn)槿绻院笪蚁胱稍僑tock我會(huì)打電話給 Stock 而不是ItemRegister。


然后你需要Stock換成ItemRegister.


public class ItemRegister  {

    Stock stock;

    public ItemRegister(Stock stock) {

        this.stock = stock;

    }


    public void registerItem(String name, double price) {

        stock.getStock().add(new Item(setItemCode(), name, price, 0));

    }


    private int setItemCode() {

        return stock.getStock().size() + 1;

    }

}

在您的單元測試中使用它,如下所示:


public class ItemRegisterTest {

    @Test

    public void testIfHasRegisteredItemInStock() {

        Stock s = new Stock();

        assertTrue(s.getStock().size() == 0);

        ItemRegister i = new ItemRegister(s);        

        i.registerItem("Oleo", 20.0);

        assertTrue(s.getStock().size() == 1);

    }

}


查看完整回答
反對 回復(fù) 2022-05-25
  • 2 回答
  • 0 關(guān)注
  • 88 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號