我需要从变量类创建10个对象,但我收到错误。
这是我的代码:
for(n=1;n<10;n++){
variableTab[n]= "variable" +""+n;
Variable variableTab[n] = new Variable();
//System.out.println(variableTab[n]);
}
我遇到的错误:
variableTab
我不知道问题出在哪里,因为variableTab[]
是一个字符串标签。
答案 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]);
}
基本上,您正在尝试为尚不存在的内容分配值。