这个数组怎么会有NULLPOINTEREXECPTION呢?

来源:百度知道 编辑:UC知道 时间:2024/06/13 13:09:55
程序是设一个随机数组,可能显示他的平均值
public class RandomArray {
int length;
double randomArray[];

public RandomArray() {
double randomArray[] = new double[0];
}

public RandomArray(int length) {
this.length = length;
double randomArray[] = new double[length];
}

public void initializeArray() {
for (int i = 0; i < randomArray.length; i++) {
randomArray[i] = Math.random() * 10;
}
}

public double arrayAverage() {
double sum = 0.0;
double average = 0.0;
for (int i = 0; i < length; i++) {
sum += randomArray[i];
}
average = sum / length;

return average;
}
}

public class RandomArrayDemo {
public static void main(String[] args) {
RandomArray a = new RandomArray(10);
a.initializeArray();
System.out.println("The average of the array is: " +

两个构造器改成

public RandomArray() {
randomArray = new double[0];
}

public RandomArray(int length) {
this.length = length;
randomArray = new double[length];
}

我想你应该明白为什么了,估计是你粗心了。

public RandomArray(int length) {
this.length = length;
double randomArray[] = new double[length];
}

这里错了,不应该定义一个新的,应该使用外面定义好的
改成
public RandomArray(int length) {
this.length = length;
this.randomArray = new double[length];
}

你两个构造方法中randomArray[]的前边都多了一个double,这使得变量randomArray[]没有被赋值,所以报NullPointerException