Emperor.java
上传用户:hensond
上传日期:2021-12-27
资源大小:817k
文件大小:2k
源码类别:

软件工程

开发平台:

Java

  1. /**
  2.  * 
  3.  */
  4. package com.company.section2;
  5. import java.util.ArrayList;
  6. import java.util.Random;
  7. /**
  8.  * @author cbf4Life cbf4life@126.com
  9.  * I'm glad to share my knowledge with you all.
  10.  * 中国的历史上一般都是一个朝代一个皇帝,有两个皇帝的话,必然要PK出一个皇帝出来。
  11.  * 问题出来了:如果真在一个时间,中国出现了两个皇帝怎么办?比如明朝土木堡之变后,
  12.  * 明英宗被俘虏,明景帝即位,但是明景帝当上皇帝后乐疯了,竟然忘记把他老哥明英宗削为太上皇,
  13.  * 也就是在这一个多月的时间内,中国竟然有两个皇帝!
  14.  * 
  15.  */
  16. public class Emperor {
  17. //定义最多能产生的实例数量
  18. private static int maxNumOfEmperor = 2;  
  19. //每个皇帝都有名字,使用一个ArrayList来容纳,每个对象的私有属性
  20. private static ArrayList<String> nameList=new ArrayList<String>(); 
  21. //定义一个列表,容纳所有的皇帝实例
  22. private static ArrayList<Emperor> emperorList=new ArrayList<Emperor>();
  23. //当前皇帝序列号
  24. private static int countNumOfEmperor =0;  
  25. //产生所有的对象
  26. static{
  27. for(int i=0;i<maxNumOfEmperor;i++){  
  28. emperorList.add(new Emperor("皇"+(i+1)+"帝"));
  29. }
  30. }
  31. private Emperor(){
  32. //世俗和道德约束你,目的就是不让你产生第二个皇帝
  33. }
  34. //输入皇帝名称,建立一个皇帝对象
  35. private Emperor(String name){
  36. nameList.add(name);
  37. }
  38. //随机获得一个皇帝对象
  39. public static Emperor getInstance(){
  40. Random random = new Random();
  41. countNumOfEmperor = random.nextInt(maxNumOfEmperor);  //随机拉出一个皇帝,只要是个精神领袖就成
  42. return emperorList.get(countNumOfEmperor);
  43. }
  44. //获得指定的皇帝
  45. public static Emperor getInstance(int i){
  46. return emperorList.get(i);
  47. }
  48. //皇帝发话了
  49. public static void say(){
  50. System.out.println(nameList.get(countNumOfEmperor));
  51. }
  52. }