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

练习题库2022-08-02  12

问题 阅读下列说明和Java代码,将应填入 (n)  处的字句写在答题纸的对应栏内。【说明】某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100)等等。现采用策略(Strategy)模式实现该要求,得到如图6-1所示的类图。import javA.util.*;enum TYPE {NORMAL, CASH_DISCOUNT, CASH_RETURN};interfaceCashSuper {  public   (1)  ;}class CashNormalimplements CashSuper{    // 正常收费子类  public double accptCash(double money){     return money;   }}classCashDiscount implements CashSuper {  private double moneyDiscount;                  // 折扣率  public CashDiscount(double moneyDiscount) {     this moneyDiscount = moneyDiscount;      }  public double acceptCash(double money) {     return money* moneyDiscount;    }}class CashReturnimplements CashSuper {               // 满额返利  private double moneyCondition;  private double moneyReturn;  public CashReturn(double moneyCondition, double moneyReturn) {       this.moneyCondition =moneyCondition;     // 满额数额     this.moneyReturn =moneyReturn;           // 返利数额   }  public double acceptCash(double money) {     double result = money;     if(money >= moneyCondition )        result=money-Math.floor(money/moneyCondition ) *moneyReturn;     return result;    }}classCashContext_{  private CashSuper cs;  private TYPE  t;  public CashContext(TYPE t)  {     switch(t){        case NORMAL:    // 正常收费             (2) ;           break;        case CASH_DISCOUNT:      // 满300返100             (3) ;           break;        case CASH_RETURN:      // 打8折             (4) ;           break;     }   }  public double GetResult(double money) {          (5)   ;   }   ∥此处略去main( )函数}

选项

答案

解析 (1)double acceptCash(double money)            (2)cs = new CashNormal()(3)cs = new CashDiscount(0.8)(4)cs = new CashReturn(300,100)(5)return cs.acceptCash(money)
转载请注明原文地址:https://tihaiku.com/congyezige/2407734.html

最新回复(0)