首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图16-6所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图16-7所示的类图。其中,类State为抽象类,定义了投币、退币、
某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图16-6所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图16-7所示的类图。其中,类State为抽象类,定义了投币、退币、
admin
2015-06-03
29
问题
某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图16-6所示。
采用状态(State)模式来实现该纸巾售卖机,得到如图16-7所示的类图。其中,类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图16-6中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。
【Java代码】
import j ava.util.*;
interface State{
public void insertQuarter(); //投币
public void ejectQuarter(); //退币
public void turnCrank(); //按下“出纸巾”按钮
public void dispense(); //出纸巾
}
class TissueMachine{
(1)soldOutState,noQuarterState,hasQuarterstate,soldState,
state;
state=soldOutState;
int count=0; //纸巾数
public TissueMachine(int numbers)
{
/*实现代码省略*/
}
publ ic State getHasQuarterState() { return hasQuarterState; }
public State getNoQuarterState() {return noQuarterState; }
public State getSoldState() {return soldState; }
public State getSoldOutState() {return soldOutState; }
public int getCount() {return count; }
//其余代码省略
}
class NoQuarterState implements State{
TissueMachine tissueMachine;
public void insertQuarter() {
tissueMachine.setState((2));
}
//构造方法以及其余代码省略
}
class HasQuarterState implements State{
TiSsueMachine tissueMachine;
public void ejectQuarter(){
tissueMachine.setState((3));
}
//构造方法以及其余代码省略
}
class SoldState implements State{
TissueMachine tissueMachine;
public void dispense(){
if(tiSsueMachine.getCount()>0) {
tissueMachine.setState((4));
}else{
tissueMachine.setState((5)); }
}
}
选项
答案
(1)State (2)tissueMachine.getHasQuarterState() (3)tissueMachine.getNoQuarterState() (4)tissueMachine.getNoQuarterState() (5)tissueMachine.getSoldOutState()
解析
本题考查基本面向对象设计模式的运用能力。
状态设计模式主要是能够使一个对象的内在状态改变时允许改变其行为,使这个对象看起来像是改变了其类。由类图可知类State是类SoldState、SoldOutState、NoQuarterState和HasQuarterState分的父类,它抽象了这4个类的共有属性和行为。在使用中,无论是这4个类中哪个类的对象,都可被当作State对象来使用。
根据题目的描述,可以知道一个纸巾售卖机它由4种状态,分别是售出纸巾、纸巾售完、没有投币、有2元钱。
在本题中,根据程序不难知道第(1)空是要定义5个对象的引用,而这些变量都应该属于State类型,因此第一空答案为State。
第(2)在类NoQuarterState(没有投币)的insertQuarter0函数中,而这个函数是投币函数,在该函数中,使用了tissueMachine类的setState方法,该方法是设置纸巾售卖机的当前状态,根据题目给出的纸巾售卖机状态图,可以知道,从没有投币状态,经过投币后,应该转换到有2元钱状态。setState方法的参数是一个State的对象,因此第(2)空应该是一个有2元钱对象,这里可以新创建一个该对象,也可以通过tissueMachine类的getHasQuarterState方法来获得这样一个对象,所以第(2)空答案应该是tissueMachine.getHasQuarterState0或new HasQuarterState。
第(3)在类HasQuarterState(有2元钱)的ejectQuarter函数中,而这个函数是退币函数,在该函数中,也使用了tissueMachine类的setState方法,该方法是设置纸巾售卖机的当前状态,根据题目给出的纸巾售卖机状态图。可以知道,从有2元钱状态,经过退币后,应该转换到没有投币状态。setState方法的参数是一个State的对象,因此第(3)空应该是一个没有投币对象,这里可以新创建一个该对象,也可以通过tissueMachine类的getNoQuarterState方法来获得这样一个对象,所以第(3)空答案应该是tissueMachine.getNoQuarterState0或new NoQuarterState。
同样的道理,可以知道第(4)空的答案是tissueMachine.getNoQuarterState0或newNoQuarterState。第(5)空的答案是tissueMachine.getSoldOutState0或new SoldOutState。
转载请注明原文地址:https://kaotiyun.com/show/9dDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在控制面板的“添加/删除程序”对话框中选择(1),然后进入“应用程序服务器”选项,在(2)组件复选框中选择“文件传输协议(FTP)服务”,就可以在Windows2003中安装FTP服务。(1)A.更改或删除程序B.添加新程序C.添加/删除
阅读以下说明,回答问题1至问题3,将解答填入解答栏内。【说明】某公司租用了一段C类地址203.12.11.0/24~203.12.14.0/24,如下图所示。其网间地址是172.11.5.14/24。要求网内所有PC都能上网。
阅读以下关于在Linux系统中配置Apache服务器的说明,回答问题1至问题3,将解答填入解答栏内。【说明】在Linux系统中采用Apache配置Web服务器。Apache服务器提供了丰富的功能,包括:目录索引、目录别名、虚拟主机、HTTP日志报
阅读以下说明,回答问题1至问题3,将解答填入对应的解答栏内。【说明】某校园网申请到了C类网络地址块202.115.0.0/24~202.115.3.0/24。根据网络规划需求,网络中心、图书馆、教学实验楼以及行政办公楼的各个部门需划分到不同网段。
与ISDN相关的网络设备主要有TA、NT1、NT2、TE1、TE2等。在图2-9所示的网络拓扑结构中,路由器Router1和ISDN之间是否需要加入终端适配器(TA)?请用150字以内的文字简要说明理由。在路由器Router2上运行showrunni
阅读以下关于在ISDN网中应用点对点协议(PPP)和按需拨号路由(DDR)技术的说明,结合网络拓扑图回答问题1至问题4。【说明】综合数字业务网(ISDN)由数字电话和数据传输服务两部分组成,提供基本速率接口(BRI)和基群速率接口(PRI)两种服
解释图10-2中的PVC和SVC。支持可变比特率(VBR)业务;支持面向连接的业务,其比特率是可变的。常见业务为压缩的分组语音通信和压缩的视频传输。请问根据其业务描述是属子图10-3中高层中的哪一级?
网络负载平衡(NetworkLoadBalancing)的核心是位于网络适配器驱动和(1)之间的WLBS.SYS的筛选器驱动。它采用一种(2),根据传入客户端的(3),以统计方式将其映射到群集主机。当发现到达的数据包时,所有主机同时执行这种映射,以快速
简述网络规划阶段需求分析的方法和解决的问题。(控制在100个字以内)在网络规划阶段“系统可行性分析和论证”的主要内容是什么?(控制在100个字以内)
随机试题
为什么不同的钢奥氏体晶粒在加热时的长大倾向不同?
外周血涂片中,几乎不可能出现原始和幼稚细胞的是
现代农业的发展不能脱离生态安全和产品安全两个基本要求,因此,农业污染防治应作为现代农业发展的重要任务之一。不同于工业污染和城市污染,农业污染涉及面广而隐蔽性强,评估难度大,不适合建立惩罚型机制。同时,由于农民收入水平相对较低,不可能进行“污染收费”。所以说
下列有关托收当事人之间的关系的表述正确的是哪些?()
下列关于投标文件的补充、修改与撤回的表述,正确的是()。
关于伴采矿资源税税务处理的说法,正确的是()。
根据《增值税暂行条例》的规定,下列有关增值税纳税义务发生时间的表述中符合规定的有()。
左边给定的是纸盒的外表面,下列哪一项能由它折叠而成?
(2012广东)一列火车出发1小时后因故障停车0.5个小时,然后以原速度的行驶,到达目的地晚点1.5小时,若出发1小时后又行驶120公里停车0.5小时,然后同样以原速度的行驶,则到达目的地晚点1小时,从起点到目的地的距离为:
•Readthetextabouttheimportanceofqualifications.•Inmostofthelines34—45thereisoneextraword.Oneortwolines,ho
最新回复
(
0
)