public class Dice { // The data member dice is a reference variable that // can point to an array of Die objects. private Die[] theDice; public Dice (int numDice) { } /******************************************* * roll * * - Takes no parameters * - Returns nothing * - Rolls each Die object in the arrry *******************************************/ public void roll() { // For each element in the dice array, call the // roll method to randomly choose a face value } /******************************************* * getDie * * - Takes an integer parameter, position * - Returns the Die object at that position, * or null, if the position is invalid *******************************************/ public Die getDie (int position) { // Make sure that position is a valid index // (between 0 and dice.length) // position is valid, return the appropriate Die object } /******************************************* * getNumDice * * - Takes no parameters * - Returns the length of the dice array *******************************************/ public int getNumDice() { // The data member dice is private, so classes outside // of Dice cannot directly access dice, which also means // that they cannot directly access dice.length. return dice.length; } /******************************************* * toString * * - Takes no parameters * - Returns a String containing the face values * of all of the Die objects in the array *******************************************/ public String toString() { // Create a blank String variable String diceString = ""; // For each element in the dice array, add its // face value (obtained through dice[i].getFace()) // to the String. Separate each element's face // by the tab character. for (int i=0; i