有我得到方法返回空指针错误
Exception in thread "main" java.lang.NullPointerException
at StudentGrades.getMinimum(StudentGrades.java:54)
at StudentClient.main(StudentClient.java:14)
我没有找到我设置一个空的任何方法的错误。
我尝试使用中值方法,但仍然让我这个相同的错误。
import java.util.Arrays;
import java.util.Random;
public class StudentGrades {
Random randomNumber = new Random();
int numberofStudents;
int grade;
int[] grades;
int sum = 0;
public StudentGrades(int studentNumber) {
numberofStudents = studentNumber;
int[] grades = new int[numberofStudents];
for (int i = 0; i < numberofStudents; i++) {
grades[i] = randomNumber.nextInt(101);
Arrays.sort(grades);
}
}
public int getNumberStudents() {
return numberofStudents;
}
public int[] getStudentGrades() {
int[] temp = new int[grades.length];
for (int i = 0; i < grades.length; i++) {
temp[i] = grades[i];
}
return temp;
}
public void setStudentGrades(int n) {
grade = n;
}
public double getAverage() {
for (int i = 0; i < grades.length; i++) {
sum = +grades[i];
}
double average = (double) sum/numberofStudents;
return average;
}
public int getMaximum() {
int max = grades[0];
for (int i = 0; i < grades.length; i++) {
if (grades[i] > grades[max])
max = grades[i];
}
return max;
}
public int getMinimum() {
int min = grades[0];
for (int i = 0; i < grades.length; i++) {
if (grades[i] < grades[min])
min = grades[i];
}
return min;
}
public String toString() {
String returnString = "grades :";
for (int i = 0; i < grades.length; i++) {
returnString += grades[i];
}
return returnString;
}
public double getMedian() {
double median = 0;
if (grades.length % 2 == 0) {
median = (grades[grades.length/2] + grades[(grades.length/2) + 1])/2;
} else
median = grades[((grades.length - 1)/2) + 1];
return median;
}
}
你需要再次看看你的getMinimum方法,我不认为它在做你认为它在做什么 – Floegipoky
另外,getMaximum也有同样的问题,我不认为你的意思是写'sum = + grades [我];'在getAverage – Floegipoky
您的int min =成绩[0];在getMinimum可以设置分钟为50,如果这是一个有效的分数。然后,当你查看循环中的最小值时,可以参考等级[分],这会给你成绩[50] - 成绩的第51个元素 - 这几乎肯定不是你想要的。只是把分数[我] <分钟应该工作。 – Bruce