使用变量字符串命名对象

时间:2013-04-21 04:36:48

标签: java class variables object

我的问题类似于:

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上的第一篇文章。请用礼仪/格式指导。

1 个答案:

答案 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() ......