java 答题卡_阅读下列说明和java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 - 信管网...

阅读下列说明和JAVA代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图6-1所示。

8034d231d726e042040cf933c2ef5767.png

采用状态(State)模式来实现该纸巾售卖机,得到如图6-2所示的类图。其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图6-1中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。

796a790032d84536197059fbfc2c749b.png

【Java代码】

import javA.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) {  /* 实现代码省略 */ }

public 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)  );  }

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值