2011-12-15 64 views
1

Hermione正在從霍格沃茨之戰中恢復過來,並正在用Java學習面向對象的編程(參見圖)。她決定根據她的經驗 建立一個遊戲,並確定以下主要實體:將狀態從一個實例轉移到另一個實例的更優雅高效的方式

人類是一個存在的人。巫師也是一個人。

房子精靈是一個存在。

幽靈是存在的。

然後,她會識別一些狀態和動作:

每個人都有一個名字。

每個人都有一個父親和一個母親。

每個嚮導都會發揮魔力。

每個家庭小精靈也表現出魔法。

每個幽靈都會滑到某個位置。

將嚮導轉換爲幻影可以通過將嚮導實例中的所有相關狀態從 複製到新創建的幻象實例來實現。什麼是更優雅的 和高效的方法?

我可以讓新創建的Ghost實例指向Wizard實例指向的狀態,然後刪除嚮導實例嗎?對不起,我的英文不好,我很難寫標題

+2

這是一個功課題嗎?如果是這樣,請誠實並標記它。 – vidstige 2011-12-15 08:40:07

回答

0

Java不支持指針

不能刪除一個實例。

您可以讓Ghost實例引用嚮導實例。不過,我懷疑這是作業,當你做家庭作業時,你需要得到預期的答案,而不僅僅是一個有效的答案,所以我建議你按照你的要求複製細節。

效率是一個要求嗎?我懷疑在這項任務中你不需要擔心表現。如果這是一個問題,你能說出性能要求是什麼?

0

鬼和嚮導應該有一些共同的數據,你把它封裝在自己的類中。當你從一個嚮導中製作一個幽靈時,你只需在幽靈中引用這些常見數據。當您運行垃圾回收時,您將刪除對嚮導的所有引用,然後該向導將「永遠消失」。

相關問題