首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和JaVa代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他
阅读以下说明和JaVa代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他
admin
2014-10-11
61
问题
阅读以下说明和JaVa代码,将应填入(n)处的字句写在答题纸对应栏内。
【说明】
任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。以下是一个“剪刀石头布”游戏。猜拳时的“策略’’有2种方法:第一种是“猜赢后继续出同样的招式,(winningStrategy),第二种是“从上一次出的招式种,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了Hand类表示猜拳时的“手势”,类内部以0(石头)、1(剪刀)、2(布)来表示。Hand类的实例只会产生3个。以下是JaVa语言实现,省略了不相关属性及方法,方法实现体亦有所省略,能够正确编译通过。
【Java代码】
//Hand.Java文件
publiC class Hand{
public static final int HANDVALUE—GUU=0;/石头
public static final int HANDVALUE—CHO=1;//剪刀
public static final int HANDVALUE—PAA=2;//布
public static final Hand[]hand={
new Hand(HANDVALUE_GUU),
new Hand(HANDVALUE—CHO),
new Hand(HANDVALUE—PAA),
};
private int handvalue;
(1) Hand(int handvalue){
this.handvalue=handvalue;
}
publ ic(2)Hand getHand(int handvalue){//从值取得对象实例
return hand fhandvalue]:
}
}
//Strategy.java文件
public interface Strategy(
public (3)Hand nextHand();
}
//ProbStrategy。Java文件
import java.util.Random;
public class ProbStrategy implements Strategy(
public Hand nextHand(){
int handvalue=0;
/*省略具体实现*/
return Hand.getHand(handvalue);
}
}
//WinningStrategy.Java文件
import java/util.Random;
public class WinningStrategy implements Strategy{
/*省略了不相关属性*/
public Hand nextHand(){
if(!won){
prevHand=Hand.getHand(random.nextInt(3));
}
return prevHand;
}
}
//Player.Java艾件
public class Player{
private string name;
private strategy strategy;
public Player(string name,(4)strategy){
this.name=name;
this.strategy=strategy;
}
public Hand nextHand(){//向战略请示手势
return(5);
}
}
选项
答案
(1)private (2)static (3)abstract (4)Strategy (5)strategy.nextHand()
解析
Hand类要保证只产生3个实例,就要求不能随便生成Hand类,因此其构造方法需要是private型的,故空(1)填private。先看空(3),nexthand0是接口Strategy~方法,应为抽象方法,故空(3)应填abstract。再来看空(2),由对getHand()方法的调用方式Han@D@getHand(handValue)及Han@D@getHand(random.nextInt(3)),可知该方法是类Hand的静态方法,故空(2)应填static。由语句this.strategy=strategy;可知:this.strategy与strategy是同数据类型,this表示自身引用,而this.strategy是Strategy类型,故空(4)应填Strategy。方法nextHand0是“向战略请示手势”,取得手势是通过其所采用的“策略”实现的,故空(5)应填strategy.nextHand0。
转载请注明原文地址:https://www.kaotiyun.com/show/B4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某个不确定有限自动机(s0为初态,s3为终态)如下图所示,_______是该自动机可识别的字符串(即从初态到终态的路径中,所有边上标记的字符构成的序列)。
通常VLAN有静态和动态2种实现方式,这2种方式分别是如何实现的?各有什么特点?Switch1采用的是哪种实现方式?在VLAN中,STP和VTP是什么协议?各有什么作用?
阅读以下说明,回答问题1和问题2。说明二层隧道协议L2TP(Layer2TunnelingProtocol)是一种基于点对点协议PPP的二层隧道协议。某网络结构如图5-1所示,采用L2TP来实现网络安全。
阅读以下说明,回答问题1至问题7。[说明]在IMail管理器中,选中MailUser邮件主机,然后在它右边的面板中选中General选项卡,出现邮件主机的配置窗口如图3-1所示。如果在IMail管理器中,选中Userl用户,然后在
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,解释(7)处的命令。Switch#configtSwitch(
双绞线可以制作成直连线和交叉线两种形式。在上图中,两个交换机的UPLINK口相连,使用的双绞线制作成什么形式?连接交换机和计算机的双绞线制作成什么形式?阅读下面的配置信息,解释(6)处的命令。Switeh#vlanSwitch(vla
该DHCP服务器可分配的IP地址有多少个?在Windows操作系统下,DHCP客户端“Internet协议(TCP/IP)属性”配置界面如下图所示。在此界面中,客户端应如何配置?
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
请阅读以下说明和Socket程序,将应填入(n)处的字句写在对应栏内。【说明】网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。一般发起通信请求的应用程序称为客户软件,该应
随机试题
此患者首先应该做的检查是( )患者入院次日腹痛加剧,体温38.9℃。查体:腹部有明显的肌紧张和反跳痛,白细胞16×109/L。此时最恰当的治疗方案是( )
【2009年真题】在投资方案的不确定性分析中,通过盈亏平衡分析,可以()。
—Ifyoudon’tliketheredcoat,taketheblueone.—Ok,butdoyouhave______sizeinblue?Thisoneisabittightforme.
材料:花园里,同学们都纷纷说了自己喜欢的花,这时全校闻名的“调皮大王”李刚发话了:“老师,我最喜欢的是仙人掌,它虽然全身长满了刺,但它的生命力最旺盛,而且刺丛中还能开出美丽的花儿呢!”他的话立即遭到同学们的反驳。“你们就看到它的刺了!你仔细看看人家刺中也
从所给四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性:
下列做法在日常生活中可行的是()。
根据可贷资金理论,流动性增强,其它条件不变的情况下,利率会()。
[*]
扩展名为.bak的文件是()。
对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()。
最新回复
(
0
)