magichat.java

来自「Java2入门经典第五章源码」· Java 代码 · 共 56 行

JAVA
56
字号
import java.util.Random;                      // Import Random class

public class MagicHat
{
  static int maxRabbits = 5;                  // Maximuum rabbits in a hat
  static Random select = new Random();        // Random number generator
  static private String[] rabbitNames = {"Floppsy", "Moppsy",
                                         "Gnasher", "Thumper"};
  static private int[] rabbitNamesCount = new int[rabbitNames.length];

  // Constructor for a hat
  public MagicHat(final String hatName)
  {
    this.hatName = hatName;                         // Store the hat name
    rabbits = new Rabbit[1+select.nextInt(maxRabbits)]; // Random rabbits

    for(int i = 0; i < rabbits.length; i++)
      rabbits[i] = new Rabbit();                    // Create the rabbits
  }

  // String representation of a hat
  public String toString()
  {
    // Hat name first...
    String hatString = "\n" + hatName + " contains:\n";

    for(int i = 0; i < rabbits.length; i++)
      hatString += "\t" + rabbits[i] + " ";  // Add the rabbits strings
    return hatString;
  }

  private String hatName;       // Name of the hat
  private Rabbit rabbits[];     // Rabbits in the hat

  // Nested class to define a rabbit
   class Rabbit
  {
    // A name is a rabbit name from rabbitNames followed by an integer
    private String name;                       // Name of the rabbit

    // Constructor for a rabbit
    public Rabbit()
    {
      int index = select.nextInt(rabbitNames.length);  // Get random name
                                                       // index
      name = rabbitNames[index] + (++rabbitNamesCount[index]);
    }

    // String representation of a rabbit
    public String toString()
    {
      return name;
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?