package singelDemo2;
import java.util.ArrayList;
import java.util.Random;
public class Emperor {
//定义最多能产生的实例数量
private static int maxNumOfEmperor = 2;
//每个皇帝都有名字,定义一个List用于存储皇帝的名字
private static ArrayList<String> nameList = new ArrayList<String>();
//定义一个列表,容纳所有的皇帝实例
private static ArrayList<Emperor> emperorList = new ArrayList<Emperor>();
//当前皇帝序号
private static int countNumOfEmperor = 0;
//产生所有对象
static {
for(int i = 0 ; i < maxNumOfEmperor ; i++) {
emperorList.add(new Emperor("皇帝"+(i+1)));
}
}
//私有化构造函数
private Emperor() {
}
private Emperor(String name) {
nameList.add(name);
}
public static Emperor getInstance() {
Random rand = new Random();
countNumOfEmperor = rand.nextInt(maxNumOfEmperor);
return emperorList.get(countNumOfEmperor);
}
public void say() {
System.out.println(nameList.get(countNumOfEmperor) + "发话了");
}
}
package singelDemo2;
public class Minister {
public static void main(String[] args) {
// TODO Auto-generated method stub
int ministerNum = 5;
for(int i = 0 ; i < ministerNum ; i ++) {
Emperor emperor = Emperor.getInstance();
System.out.println("第"+(i+1)+"参拜的是");
emperor.say();
}
}
}