java - 使用可变字符串命名对象

标签 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”、“Blue”和“Jeff”,我该如何配置它,以便稍后用户可以输入

Red.getLegCount();

Blue.hasBeenFed();

等等

我还能如何创建此场景?如果我想制作许多不同名称的 Dog 对象,我该怎么做?如果这不是一个好主意,我能做些什么呢?

PS - Stack Overflow 上的第一篇文章。请指导礼仪/格式。

最佳答案

你为什么不使用 HashMap ?您基本上需要的是一组键值对。这正是 HashMap 所做的。一个很好的开始链接: http://tutorialswithexamples.com/java-map-and-hashmap-tutorial-with-examples/

让你的Dog具有 dogName、legs、beenFed 和其他属性的类。 接下来,定义一个 HashMap<String,Dog> key 为 dogName和狗是整个Dog具有所有属性的对象。例如

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

稍后如果你想访问 Dog 对象,执行 olddog = hashmap.get("red"). 现在,您可以做任何事情 - olddog.getLegs() ...

关于java - 使用可变字符串命名对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128021/

相关文章:

c# - 如何在 C# 中附加声音

java - 将类调用到网格中

java - 单独的相机类别还是合并在一起?

sql - 创建全局声明

Javascript 变量未更新/保存

java - 如何禁用内联 p :calendar (primefaces)

java - 查找奇偶校验异常值 CodeWars

java - 探索 Java 图像处理的好资源

c++ - 如果某些实例不使用基类的属性,我是否应该继承子类?

javascript - 在 Ajax 中传递 URL 变量