/** A simple class that simulates a fair die. @author Jed Yang and friends, 2018-03-28 */ import java.util.Random; public class Die { // class variable (static means shared amongst instances) private static int numberCreated = 0; // instance variables, private private final int sides; private int value; private final int serialNumber; // final means: no change after initialized private Random rand; public Die() { this(6); } public Die(int sides) { rand = new Random(); this.sides = sides; value = 1; numberCreated++; serialNumber = numberCreated; System.out.println("Created die #" + numberCreated + " with " + sides + " sides."); } public void roll() { value = rand.nextInt(sides) + 1; System.out.println("Die #" + serialNumber + " is rolled."); } public int getValue() { return value; } public void setValue(int value) { if (value > sides || value <= 0) { System.err.println("Are you insane?"); } else { this.value = value; } } }