2013-04-21 78 views
1

我的問題類似於:用可變字符串命名對象

Creating a variable name using a String value

但我希望對此採取不同的角度。

想要命名每個對象的原因是我可以稍後調用,並使用相同的語句創建多個對象。理想情況下,這是我想要工作。

String dogName = reader.nextLine(); 

int legs = reader.nextInt(); 

char beenFed = reader.nextChar(); 

new dogName = dog(dogName, legs, fed) ` 

我知道java不能接受變量作爲對象名稱。但是假設我想創建三隻狗,「紅」,「藍」和「傑夫」,我該如何配置它,這樣以後用戶可以輸入

Red.getLegCount(); 

Blue.hasBeenFed(); 

還能如何我創建這個場景?如果我想製作許多不同名稱的Dog對象,我該怎麼做?如果這不是一個好主意,我能做些什麼呢?

PS - Stack Overflow的第一篇文章。請用禮儀/格式指導。

+0

我看你編輯這對我來說斯圖爾特。請告訴我我需要做什麼,以便將來可以正確發佈。 – xkem 2013-04-21 05:09:44

+0

Stuart只是編輯你的文章,讓你的文章變得更具可讀性,尤其是在代碼部分... – 2013-04-21 05:49:53

+0

請關閉這個問題,如果你的疑問已被回答:) – user2304987 2013-04-21 18:30:56

回答

4

爲什麼不使用HashMap?你基本需要的是一組鍵值對。這正是HashMap所做的。一個很好的鏈接,開始: http://tutorialswithexamples.com/java-map-and-hashmap-tutorial-with-examples/

讓你Dog類dogName,腿,beenFed,其他屬性.. 接下來,鍵值爲定義HashMap<String,Dog>dogName和狗是整個Dog對象的所有屬性。 e.g

Dog red = new Dog("red",5,true); 
hashmap.put(red.dogName, red); 

如果你以後要訪問Dog對象,做olddog = hashmap.get("red"). 現在,你可以做任何事情 - olddog.getLegs() ...

+1

+1。一個HashMap或者只是一個狗對象的集合就足夠了。如果你的物體有一些天然的鑰匙(比如狗的名字,或者狗的屬性組合),那麼你可以簡單地從集合中抓住它。 – 2013-04-21 05:10:18

+0

IT似乎並不像使用HashMap創建對象 - 雖然也許我錯了。 – xkem 2013-04-21 05:11:08

+0

我仍然需要能夠使用dog類中的getLegCount()來查詢狗對象。 – xkem 2013-04-21 05:13:03