使用创建的类将随机值分配给对象数组

时间:2019-06-10 02:40:03

标签: 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){
    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);
}

当我运行程序时,出现以下错误消息:

  

线程“ main”中的异常java.lang.NullPointerException

Im假定数组每个元素中的内容为null。但是为什么呢?以及如何使以上逻辑起作用?

很明显,我想限制在我的知识范围之内,这是围绕此代码的复杂性。 谢谢

1 个答案:

答案 0 :(得分:1)

您仅创建了Example个对象的数组,但是由于您尚未创建任何null个对象实例,因此其中的每个元素都是Example

“引用类型”的数组(基本上是classinterfaceenum或数组的数组)首先在每个元素中都有null引用,并且您仍然需要创建要放入数组的对象。

将代码更改为:

array[i] = new Example(randomColor, randomSize);

这将创建新的Example对象,并将随机值分配给其属性。