这个数组怎么会有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 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