创建同一个类的多个对象

时间:2015-03-18 16:18:41

标签: java

我需要从变量类创建10个对象,但我收到错误。

这是我的代码:

for(n=1;n<10;n++){
    variableTab[n]= "variable" +""+n;
    Variable variableTab[n] = new Variable();
    //System.out.println(variableTab[n]);
}

我遇到的错误:

  • 类型不匹配:无法从Variable转换为[]
  • 令牌上的语法错误&#34; n&#34;,删除此令牌
  • 重复的局部变量variableTab

我不知道问题出在哪里,因为variableTab[]是一个字符串标签。

3 个答案:

答案 0 :(得分:2)

您正在尝试将数据分配给尚未创建的对象。此外,你不应该从索引1开始。数组从索引0开始,所以基本上,你正在抢夺自己的额外空间,并通过这样做让自己更难。这也意味着您要创建9个对象,而不是10个。

使用下面的实现。

Variable [] variableTab = new Variable [10];
for(n=0;n<10;n++){
    variableTab[n]= "variable" +""+n;

    //System.out.println(variableTab[n]);
}

每条评论更新:

如果您尝试存储对象的名称,则需要创建一个成员变量来存储该名称。

public class Variable {
   private String name; //This will be used to store the unique name of the object
   //Default constructor for our class
   Variable () {
      name = "";
   }

   //Constructor to initialize object with specific name
   Variable (String name) {
      this.name = name;
   }

   //We need a way to control when and how the name of an object is changed
   public setName (String name) {
       this.name = name;
   }

   //Since our "name" is only modifiable from inside the class, 
   //we need a way to access it from the program
   public String getName () {
      return name;
   }
}


这将是设置课程的正确方法。然后,您可以以更可预测的方式控制每个类的数据,因为它只能通过调用setName方法进行更改,并且我们通过创建方法控制如何从程序的其他部分检索数据。 getName方法。

答案 1 :(得分:0)

您可能希望首先初始化对象。如果它是您尝试创建的对象数组,请按以下方式执行:

Variable[] variableTab = new Variable[n];

答案 2 :(得分:0)

您正在尝试将值分配给尚未创建的内容! 你的代码应该是这样的:

for(n=0;n<10;n++){
            Variable variableTab[n] = new Variable();
            variableTab[n]= "variable" +""+n;
            //System.out.println(variableTab[n]);
        }

基本上,您正在尝试为尚不存在的内容分配值。