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"));
}}
不行的,不知道怎么回事
就是在一个程序中如果有多个类的话,一般都不知道怎么设计了
for examplepublic class a{}
class b{}
class c{}public class只能出现一次
rabbit[i]=new Rabbits();
}这里越界了,rabbit[rabbit.length]是越界的(原因每本教材上都有提)。
java com.java.test.Inside123
结果不应该是这样的,我想随机产生名字的,但是结果一直是 hatString
System.out.println(new Inside("123"));
结果打印的是Inside实例的toString,而toString返回的是hatString,所以都是"123"
改成
System.out.println(new Inside.Rabbits());就可以了