首页
登录
从业资格
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构
最全题库
2022-08-02
41
问题
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。
【java代码】class invoice{public void printInvoice( ){System.out.println("This is the content of the invoice!");}}class Decorator extends Invoice{protected Invoice ticket;public Decorator(lnvoice t){ticket=t;}public void printInvoice( ){if(ticket!=null)(1);}}class HeadDecorator extends Decorator{public HeadDecorator(lnvoice t){super(t);}public void printInvoice( ){Systent.out.println("This is the header of the invoice!");(2);}}class FootDecorator extends Decorator{public FootDecorator(Invoice t){super(t);}public void printlnvoice( ){(3);Systent.out.println("This is the footnote of the invoice!");}}Class test{public static void main(String[]args){Invoice t=new Invioce( );Invoice ticket;ticket=(4);ticket.printInvoice( );Systent.out.println(“------------------“);ticket=(5);ticket.printInvoice( );}}程序的输出结果为:This is the header of the invoice!This is the content of the invoice!This is the footnote of the invoice!----------------------------This is the header of the invoice!This is the footnote of the invoice!
选项
答案
解析
(1)ticket.printInvoice()
(2)super.printInvoice()
(3)super.printInvoice()
(4)new HeadDecorator(new FootDecorator(t))
(5)new HeadDecorator(new FootDecorator(null))
本题考查的是面向对象程序设计和设计模式。本题涉及的设计模式是装饰模式。
装饰模式(Decorator):动态地给一个对象添加一些额外的职责。它提供了用子类扩展功能的一个灵活的替代,比派生一个子类更加灵活。
对于程序填空可以参照代码上下文、题干说明和设计模式综合考虑。
对于第(1)空,是对printInvoice方法的具体调用,在Decorator是装饰类,继承了Invoice发票类。此处需要填写的是printInvoice方法的方法体,根据Decorator类的上下文,已定义ticket对象,所以此处调用printInvoice方法的是ticket,第(1)空填写ticket.printInvoice()。
对于第(2)(3)空,根据类图可知,分别是HeadDecorator抬头类、FootDecorator脚注类调用printInvoice方法的方法体,由于在这两个类中并没有定义属性,只有借助其超类的构造函数,所以这两个地方调用printInvoice方法的是它们的超类,即(2)(3)填写的是super.printInvoice()。
对于第(4)(5)空,考查的是对装饰模式的调用,都是main函数中实例化的过程,根据输出结果可以看到,第(4)空实例化ticket对象,可以输出抬头、内容、脚注3个部分,因此需要调用三者的printInvoice()方法,前面已经实例化了一个Invoice对象t,可以利用t给子类实例化,因此第(4)空填写new HeadDecorator(new FootDecorator(t));而第(5)空没有输出具体内容,只有抬头和脚注部分,可以看到这里的Invoice对象应该是空,所以第(5)空填写new HeadDecorator(new FootDecorator(null))。
转载请注明原文地址:https://tihaiku.com/congyezige/2409649.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
天津市某银行信息系统的数据库部分关系模式如下所示: 客户(客户号,姓名,性别,
某超市销售系统的部分关系模式如下:商品表:Commodity(Ccode,C
数据库应用系统在运行过程中,发现随着数据量的不断增加,有部分查询业务和数据更新业
某图书馆的管理系统部分需求和设计结果描述如下:图书馆的主要业务包括以下几项:
某工厂的信息管理数据库的部分关系模式如下所示:职工(职工号,姓名,年龄,月工资,
某健身俱乐部要开发一个信息管理系统,该信息系统的部分关系模式如下:员工(员工身份
某汽车租赁公司建立汽车租赁管理系统,其数据库的部分关系模式如下:用户:USERS
现有一部分U/C矩阵如下表所示,则下列描述不正确的是()。A.成品库存信息是在
某公司要对其投放的自动售货机建立商品管理系统,其数据库的部分关系模式如下:售货机
某大型集团公司的数据库的部分关系模式如下:员工表:EMP(Eno,Ename,A
随机试题
Somepeoplewishtoamendthelawsothatchildrenmuststayatschooluntilthe
AreWeReadytoOpen?Emailhasthepotentialasacost-
Itwouldbeinterestingtodiscoverhowmanyyoungpeoplegotouniversityw
在中国戏剧史上第一次以同情和赞赏的态度描绘市民参与政治斗争的剧作是()A.《十五
顶棚平面图也称天花平面图,是采用镜像投影法,将地面视为镜面,对镜中顶棚的形象作为
工程量清单特征描述主要说明( )。A.措施项目的质量安全要求 B.确定综合单
儿童开始认生的年龄( )A.1-3个月 B.5-6个月 C.1岁左右 D
A.生石膏B.马钱子C.灯心草D.麝香E.生千金子临床常用量为0.03~0.1g
基尔霍夫定律的表现形式A.∑I=0B.∑U=IRC.∑E=IRD.∑E=0
小学生处于人生可持续发展的起点,小学英语教学必须诱导他们逐步形成正确的价值观。因
最新回复
(
0
)