import java.util.Random;
public class Inside{
  private Rabbits rabbit[];
  private String rabbitName;
  static int max=5;
  static Random random=new Random();
  public Inside(String rabbitName){
    this.rabbitName=rabbitName;
    //随机产生rabbit数组
    rabbit=new Rabbits[1+random.nextInt(max)];
    for(int i=0;i<=rabbit.length;i++){
      rabbit[i]=new Rabbits();
    }
  }
  public String toString(){
    String hatString="\n"+rabbitName+"\n";
    return hatString;
  }
  static class Rabbits{
    static String[] nameRabbits={"a","b","c"};
    private String name;
    //随机产生名字
    public Rabbits(){
      int index=random.nextInt(nameRabbits.length);
      int number=random.nextInt(nameRabbits.length);
      name=nameRabbits[index]+number;
    }
    public String toString(){
      return name;
    }
  }
  public static void main(String[] args){
    System.out.println(new Inside("123"));
  }}
不行的,不知道怎么回事
就是在一个程序中如果有多个类的话,一般都不知道怎么设计了

解决方案 »

  1.   

    一个程序中多个类 
    for examplepublic class a{}
    class b{}
    class c{}public class只能出现一次
      

  2.   

    用法上内部类和外部的是一样的吧。    for(int i=0;i<=rabbit.length;i++){
          rabbit[i]=new Rabbits();
        }这里越界了,rabbit[rabbit.length]是越界的(原因每本教材上都有提)。
      

  3.   

    LZ报的什么异常?我这里改完后运行没问题哈:
    java com.java.test.Inside123
      

  4.   

    我也刚弄出来,我代码那里出错了可能
    结果不应该是这样的,我想随机产生名字的,但是结果一直是 hatString
      

  5.   

    驻函数里的代码
    System.out.println(new Inside("123"));
    结果打印的是Inside实例的toString,而toString返回的是hatString,所以都是"123"
    改成
    System.out.println(new Inside.Rabbits());就可以了