首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和JaVa代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他
阅读以下说明和JaVa代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他
admin
2014-10-11
62
问题
阅读以下说明和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://kaotiyun.com/show/B4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在应用服务器关机的情况下,公司员工能连接上因特网吗?简要解释。在路由器和ISDN之间需要加入终端适配器(TA)吗?试说明在什么情况下需要加入TA。
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入答题纸相应的解答栏内。2.故障2如何解决?
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?IMail安装完成后,系统自动建立了一个名为root的用户,在默认情况下root用户是个失效的账号,如何设置使其生效?
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?限制MailUser邮件主机里所有用户接收的单个邮件的大小不超过5MB,如何配置?
目前无线局域网主要有哪两大标准体系?简述各自特点。图1-2中“EncryptionLevel”选项用以配置WEP。WEP采用的加密技术是什么?“值”备选项中应包含两种长度为多少的密钥?
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持根据上述inittab文件的内容,系统在引导过程结束前,至少还要执行______进程。A.rc.sy
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。为上
对一个大型校园网工程进行网络备份系统设计时,应考虑解决哪些主要的问题?请用150字以内的文字简要说明。某商务公司在全国各城市共有15个分支机构,这些机构已经建设了基于大型关系数据库的信息管理系统,每天负责独立地处理本区域内的业务并实时存储业务数据。每个
随机试题
对绿脓杆菌有特殊抑菌能力的抑菌剂是
某贵宾室照明系统中1回路如图5.Ⅱ所示。表5.Ⅱ.1所示为该照明工程的相关费用。问题:根据图5.Ⅱ、表5.Ⅱ.1和表5.Ⅱ.2给定的项目统一编码编制分部分项工程量清单,并将计算过程及结果填入表5.Ⅱ.3“分部分项工程量清单表”。
关于瓦斯发生爆炸的条件,不正确的说法是()。
水利工程发生质量事故后由项目法人提出处理方案的是()。
承包人向发包人提交的履约担保书金额一般为合同价的()。
公文办完毕后,须集中立卷归档,任何人不得私自保存和销毁公文。()
张立是—位单身白领,工作5年积累了一笔存款,由于该笔存款金额尚不足以购房,他考虑将其暂时分散投资到股票、黄金、基金、国债和外汇等5个方面。该笔存款的投资需要满足如下条件:(1)如果黄金投资比例高于1/2,则剩余部分投入国债和股票;(2)如果股票投资比例
=_________.
Intheatmosphere,carbondioxideactsratherlikeaone-mirror--theglassintheroofofagreen-housewhichallowsthesun’s
Theworldisplantingavigorousnewcrop:"agro-pessimism",orfearthatmankindwillnotbeabletofeeditselfexceptbywrec
最新回复
(
0
)