我的问题类似于:
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 :(得分:4)
为什么不使用HashMap
?你基本上需要的是一组键值对。这正是HashMap所做的。一个很好的开始链接:
http://tutorialswithexamples.com/java-map-and-hashmap-tutorial-with-examples/
使用dogName,legs,beenFed和其他属性制作Dog
课程。
接下来,定义HashMap<String,Dog>
,其中键为dogName
,Dog为具有所有属性的整个Dog
对象。 e.g
Dog red = new Dog("red",5,true);
hashmap.put(red.dogName, red);
稍后如果要访问Dog对象,请执行olddog = hashmap.get("red").
现在,你可以做任何事情 - olddog.getLegs()
......