2011-03-24 28 views
2

我是OOP的新手,我正在嘗試做一個簡單的遊戲來幫助我學習Java。我的想法是製作一個敵人的課程,但我希望敵人的數量是動態的。我試圖使一個新的對象作爲一個數組,而不是手動鍵入attker1 attker2等等...數組中的對象,可以完成嗎?

Mole attacker[3]; 
attacker[0] = new Mole(); 
attacker[1] = new Mole(); 
attacker[2] = new Mole(); 

我希望你得到什麼,我試圖做的想法。我試着搜索谷歌,但我不斷收到有關如何使數組超出常規數據類型(即int,char等)的教程。無論我想要做什麼,我都想知道它叫什麼。如果還有更好的方法,我也會聽。

謝謝。

回答

3

數組是完全正常的(事實上,往往使用非基本數據類型的簡單數組更多)。

所以,如果你想讓敵人的數量成爲動態的,你可能想要使用一個Container類 - 特別是一個可調整大小的數組。看看類矢量,ArrayList等

另請注意(我看到Android標籤),在繪圖循環中創建新對象可能會導致垃圾收集器被調用,並在工作時減慢幀率 - 被警告。

你有什麼的變化:

//create enemies 
Mole enemies[3]; 
enemies[0] = new Mole(); 
enemies[1] = new Mole(); 
enemies[2] = new Mole(); 

//an enemy dies! 
enemies[1] = null; 

//and comes back to life! 
enemies[1] = new Mole(); 

//do something with your enemies.... 
+0

爲避免垃圾收集器在運行時運行,可以使用內存池模式 - > http://gameprogrammingpatterns.com/object-pool.html。 – Wroclai 2011-03-24 07:35:41

1

在假設你正在談論這樣做在爪哇。 您是否嘗試過搜索 對象列表的,自定義類 的 列表?

看看以下內容:

Interface List

Create List from Java Object Array Example

也有這樣做的其他方式,如字典ArrayList的,或者如果你的對象實現其他接口,也可以選擇使用其他方法,如HashSet

希望你得到列表ArrayList的一個良好的開端等對象的

相關問題