多例模式(multition pattern)

本文介绍了一个简单的Java程序,该程序通过定义一个名为Emperor的类实现皇帝的随机选取,并通过Ministor类进行演示。Emperor类使用静态初始化块预先创建了多个皇帝实例,并通过getInstance()方法随机返回一个皇帝实例,同时提供了一个getInfo()方法来获取选中皇帝的信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package multitype;

import java.util.ArrayList;
import java.util.Random;

public class Emperor {

	private static int maxNum=2;
	private static ArrayList emperorInfoList =new ArrayList(maxNum); //皇帝名列表
	private static ArrayList emperorList=new ArrayList(maxNum);  //皇帝实例列表
	private static int currentNum=0;   //当前正在被尊敬的皇帝
	private Emperor(){}
	private Emperor(String info)
	{
		emperorInfoList.add(info);
	}
	static
	{
		//将所有皇帝都产生出来
		for(int i=0;i<maxNum;i++)
			emperorList.add(new Emperor("皇帝"+(i+1)));
	}
	public static Emperor getInstance()
	{
		Random r=new Random();
		//nextInt(int x)它是产生0到x(不含x)间分布的int数
		currentNum=r.nextInt(maxNum);        //随机抽取一个皇帝
		System.out.println("currentNum:"+currentNum);
		return (Emperor) emperorList.get(currentNum);    //获取抽取出来的皇帝实例
	}
	public static void getInfo()
	{
		System.out.println(emperorInfoList.get(currentNum));
	}
}
package multitype;

public class Ministor {

	public static void main(String[] args)
	{
		
		int x=4;
		for(int i=0;i<4;i++)
		{
			Emperor em=Emperor.getInstance();
			System.out.print("第"+(i+1)+"个大臣尊敬");
			em.getInfo();
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值