#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
верните его.