开发者社区> 问答> 正文

使用字符串值创建变量名

这是一个简单的问题(我认为)

可以说我有这段代码(假设我有一个狗课)

String name = "dog";
dog name = new dog();

我怎样才能让Java将名称识别为字符串并命名对象为dog?

展开
收起
垚tutu 2019-12-04 16:32:11 1044 0
1 条回答
写回答
取消 提交回答
  • #include

    尽管您可以使用某些脚本语言(例如PHP)来完成您想做的事情(并且这个问题经常被许多启动Java的PHP程序员问到),但这不是Java的工作方式,实际上变量名远没有Java重要您可能会意识到,甚至在代码编译后也几乎不存在。更重要的是关键是变量引用 -能够在程序的特定位置访问特定对象的能力,并且可以通过使用Map作为一种方式使String轻松引用对象。

    例如

    Map<String, Dog> dogMap = new HashMap<String, Dog>();
    dogMap.put("Fido", new Dog("Fido"));
    
    Dog myPet = dogMap.get("Fido");
    
    

    或者,您可以通过许多其他方式(例如,通过数组,ArrayList,LinkedList或其他几个collectinos)获得对对象的引用。

    编辑 您的状态:

    关键是,在我的代码中,我将使用一种方法来创建对象,该对象的名称是任意的,但我需要使其具有动态性,因为它不会是临时的,因此该对象的实际名称必须更改或我将覆盖先前声明的对象。

    这就是我说变量名并不像您认为的那么重要时的意思。变量名称不是 “对象名称”(实际上实际上不存在)。

    例如,如果您在名为Fido的变量中创建了一条狗,然后将其分配给名为spot的新变量,则尽管两个变量的名称不同,但它们都将引用同一对象:

    Dog fido = new Dog;
    Dog spot = fido; // now fido and spot refer to the same object
    
    

    如果要给变量一个“名称”,请考虑给该类一个名称属性:

    class Dog {
       private String name;
    
       public Dog(String name) {
          this.name = name;
       }
    
       public String getName() {
          return name;
       }
    }
    
    

    现在,您可以根据需要为每个Dog对象赋予自己的(半)唯一名称。

    2019-12-04 16:32:34
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载