阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如图5-1所示类图。

欢迎免费使用小程序搜题/刷题/查看解析,提升学历,成考自考报名,论文代写、论文查重请加客服微信skr-web

阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如图5-1所示类图。 【Java代码】 interfaceItem{publicvoidaccept(Visitorvisitor);publicdoublegetPrice();}classBook(1){privatedoubleprice;publicBook(doubleprice){(2);}publicvoidaccept(Visitorvisitor){//访问本元素(3);}publicdoublegetPrice(){returnprice;}}//其它物品类略interfaceVisitor{publicvoidvisit(Bookbook);//其它物品的visit方法}classCashier(4){privatedoubletotalForCart;//访问Book类型对象的价格并累加(5){//假设Book类型的物品价格超过10元打8折if(book.getPrice()<10.0){totalForCart+=book.getPrice();}elsetotalForCart+=book.getPrice()*0.8;}//其它visit方法和折扣策略类似,此处略publicdoublegetTotal(){returntotalForCart;}}classShoppingCart{//normalshoppingcartstuffprivatejava.util.ArrayListitems=newjava.util.ArrayList<>();publicdoublecalculatePrice(){Cashiervisitor=newCashier();for(Itemitem:items){(6);}doubletotal=visitor.getTotal();returntotal;}publicvoidadd(Iteme){this.items.add(e);}}

(1)implements Item (2)this.price=price (3)visitor.visit(this) (4)implements Visitor (5)public void visit(Book book) (6)item.accept(visitor)【解析】 这里考察的是访问者模式。其定义如下:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作 第一、四空为接口与实现,接口使用Interface,实现使用implements。第二空this表示类实例本身。第三空为访问本元素。第五空实现接口里面的方法。第六空调用accept方法

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top