Получение среднего

#java

#java

Вопрос:

Мне нужно было рассмотреть класс die и реализовать измеримый интерфейс. Затем мне пришлось сгенерировать кубики, разыграть и добавить их в первую реализацию класса DataSet, а затем отобразить среднее значение. Моя проблема заключается в получении среднего значения. Когда я попытался использовать свой код в моем тестере, извлеките его из класса DataSet, но это привело бы к ошибке. VS Code подчеркивает «ds.add(d);» и когда я делаю это рекомендуемое исправление, которое вносит путаницу в кучу вещей, оно добавляет измеримую реализацию ко всему классу, а затем к getMeasure() методу. Он возвращает только среднее значение 0, и я думаю, это потому, что getMeasure() метод настроен на возврат 0, и я не могу понять, как это исправить. Пожалуйста, помогите.

Спасибо!!

Умирают класс и тестировщик

 import java.util.Random;

public class P11_1 implements Measurable 
{
    private Random generator;
    private int sides;

    public P11_1(int s)
    {
        sides = s;
        generator = new Random();
    }

    public int cast()
    {
        return 1   generator.nextInt(sides);
    }

    public double getMeasure() {
        return 0;
}



    public static void main(String[] args)
    {

        final int TRIES = 10;
        DataSet ds = new DataSet();
        P11_1 d = new P11_1(6);

        for(int i = 1; i <= TRIES; i  )
        {
            int n = d.cast();
            ds.add(d);
            System.out.print(n   " ");
        }
        System.out.println("Average: "   ds.getAverage());
    }

}
  

Набор данных

 public class DataSet 
{
    private double sum;
    private int count;
    private Measurable maximum;

    public DataSet()
    {
        sum = 0;
        count = 0;
        maximum = null;
    }

    public void add(Measurable d) {
        sum = sum   d.getMeasure();
        if(count == 0 || maximum.getMeasure() < d.getMeasure())
        {
            maximum = d;
        }
        count  ;
    }

    public Measurable getMaximum()
    {
        return maximum;
    }



    public double getAverage()
    {
        if(count == 0) return 0;
        else return sum / count;
    }
}
  

Измеримый

 public interface Measurable
{
    double getMeasure();
}
  

Комментарии:

1. @KevinO Нет, они этого не делают, потому что sum это double .

2. Ах, извините, @DawoodibnKareem, вы правы.

3. Возможно, у вас должно быть поле, в котором хранится последний бросок кости. Заставьте cast установить значение этого поля и getMeasure верните его.