亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法理解方法和構造函數的順序

無法理解方法和構造函數的順序

胡子哥哥 2023-03-31 15:39:14
根據序列圖,我應該首先創建方法“regisreItem(Item item)”,參數“item”作為對象。我看到我的問題是在方法“regisreItem(Item item)”之后調用了“items”的構造函數,因此我沒有任何東西可以根據序列圖插入到“regisreItem(Item item)”方法中?;虿??時序圖類圖這是我感興趣的序列圖的一部分https://drive.google.com/open?id=1eJolWNoN32IubP3iaaXPc_cLM5Es08hK 這是我所有的代碼。請向我提供一些可以實現的代碼。并闡明時序圖的開頭。
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

由于該操作registerItem 需要一個項目作為參數,因此 Auctioneer 對象需要在調用該操作之前創建它。這意味著 Auctioneer 必須發送一條創建消息,而不是 Auction(new Item()在序列圖中不可能用作參數 - 而且它無論如何都不會更改創建者)。i1并且i2是交互的屬性。它們可以用作 的參數registerItem。 addBid還期望一個bidder. 此處應再次使用交互的屬性Max和。Moritz

在真實程序中,這些交互屬性將是操作Auction::addBid或拍賣人的臨時變量。Auctioneer 可能不應該有變量,因此 OperationregisterItem可能應該只有通用數據類型,例如string參數。

應該向和Auction發送消息,但是,由于這些是交互的屬性,對象不知道它們。省略這個細節是可以的,但最好展示 是如何找到相關的,例如通過調用自身的操作。i1i2AuctionAuctionItemfindItemByName

更好的選擇是讓Auctionsend the messages to its own attribute allItems。那么兩條生命線將代表相同的屬性,但具有不同的對象。選擇器可用于區分此屬性定義的插槽中的兩個對象(allItems[0]allItems[1],這是可選的)。allBidsinstead ofb300EUR等也同樣適用。


查看完整回答
反對 回復 2023-03-31
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

您可以使用以下方法解決在 registerItem 之后調用 Item 構造函數的問題:

registerItem(new Item(...));

并傳入 Itemi1和的屬性i2。這將創建新項目,然后可以將其添加到拍賣項目列表中。

我假設序列圖的開始是拍賣師創建或打開一個已經創建的拍賣,然后通過重復調用添加將在拍賣中使用的項目列表,然后 Max 和 Moritz 可以registerItem(new Item(...));通過對象Auction_


查看完整回答
反對 回復 2023-03-31
  • 2 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號