Вы забыли установить параметр для своего new HomeworkGrades()
-экземпляра.
Поэтому
double[] grades = {98.7, 77.9, 90, 83, 67, 33, 81, 90 };
HomeworkGrades cls = new HomeworkGrades();
должно быть
double[] grades = {98.7, 77.9, 90, 83, 67, 33, 81, 90 };
HomeworkGrades cls = new HomeworkGrades(grades);
Кроме того ... Выделать какие-то безумные вещи при инициализации HomeworkGrades ...
Это будет работать просто отлично:
double[] HWgrades;
public HomeworkGrades(double [] gradesEarned) {
HWgrades =gradesEarned;
}
Вы даже не используете private double[] grades;
и вам не нужно устанавливать свой массиввремена array.length для того, чтобы получить массив в конце.Просто сделайте это один раз.
РЕДАКТИРОВАТЬ Для того, чтобы напечатать ваше среднее значение или все, что вы хотите от экземпляра, просто получите двойное значение и напечатайте его в System.out.println ()
public static void main(String[] args) {
double[] grades = {98.7, 77.9, 90, 83, 67, 33, 81, 90};
HomeworkGrades cls = new HomeworkGrades(grades);
System.out.println("Average: " + cls.calcAverage());
}
РЕДАКТИРОВАТЬ2 Ваша функция, чтобы получить самый низкий балл, странная ... Просто используйте это istead:
public double calcLowestGrade() {
double lowest = Double.MAX_VALUE;
for (double d : HWgrades) {
if (d < lowest) {
lowest = d;
}
}
return lowest;
}
Одна ошибка состояла в том, что вы сделали функцию статической и, следовательно, ееНе удалось получить массив HWgrades.Более того, вам не нужно создавать новый массив, потому что вы уже дали объекту массив в начале.