Java 使用创建的类为对象数组指定随机值
java中的新情况: 我想将随机值存储到我创建的类的对象数组中。 我创建了以下类:Java 使用创建的类为对象数组指定随机值,java,arrays,Java,Arrays,java中的新情况: 我想将随机值存储到我创建的类的对象数组中。 我创建了以下类: private double color; private double size; // default constructor public Example() { color = 0.0; size = 0.0; } // second constructor taking two arguments public Example(double color, size imaginary
private double color;
private double size;
// default constructor
public Example() {
color = 0.0;
size = 0.0;
}
// second constructor taking two arguments
public Example(double color, size imaginary){
this.color=color;
this.size=size;
}
// mutators
public void setColor(double c){
color=c;
}
public void setSize(double s){
size=s;
}
现在在我的驾驶课上:
我创建了以下内容
import java.lang.Math;
int num = 4;
Example[] array;
array = new Example[num];
for(int i=0;i<num-2;i++)
{
randomColor = Math.random();
randomSize = Math.random();
array[i].setColor(randomColor);
array[i].setSize(randomSie);
}
运行该程序时,我收到以下错误消息:
线程主java.lang.NullPointerException中出现异常
我假设数组中每个元素的内容都是空的。但为什么呢?我如何使上述逻辑起作用
很明显,我想停留在我的知识范围内,这是围绕这段代码的复杂性。
谢谢您只创建了一个示例对象数组,但其中的每个元素都是空的,因为您没有创建任何示例对象实例 引用类型的数组任何类、接口、枚举或数组,基本上都是从每个元素中都有空引用开始的,并且您仍然需要创建要放入数组中的对象 将代码更改为:
array[i] = new Example(randomColor, randomSize);
这将创建新的示例对象,并将随机值分配给其属性。这完全有意义。我没有想到新操作符,因为我把它放在array=newexample[num]之前;我认为由于默认的构造函数,每个对象都初始化为0.0