Предположим, что класс Die
работает как положено.
Итак, можно подумать об этих изменениях в PairOfDice
, которые, вероятно, решат немедленную проблему.
public class PairOfDice {
private Die dieOne = new Die();
private Die dieTwo = new Die();
public static void main(String[] args) {
PairOfDice pair = new PairOfDice();
System.out.printf("Pair: %d - %d%n", pair.getDieOneValue(), pair.getDieTwoValue());
}
public int getDieOneValue() {
dieOne.roll();
return dieOne.getValue();
}
public int getDieTwoValue() {
dieTwo.roll();
return dieTwo.getValue();
}
}
Класс PairOfDice
должен содержать ссылки на две кости (в переменных экземпляра private Die
).
Методы getDieXValue()
работают с переменными экземпляра и возвращают значение после генерации roll()
.
Теперь вопрос заключается в том, требуется ли хранить values
двух кубиков или просто иметь доступ к возможности получить значения. Если действительно нужно хранить значения, то можно сделать:
public class PairOfDice {
private int dieOneValue;
private int dieTwoValue;
public PairOfDice {
Die die = new Die();
// get a value for the first die
die.roll();
dieOneValue = die.getValue();
// get a value for the 2nd die
die.roll();
dieTwoValue = die.getValue();
}
public int getDieOneValue() {
return dieOneValue;
}
...
Лично, если кто-то собирается создавать объекты, то храните и используйте объекты.