return 0; }
程序的输出结果为:
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) virtual void printInvoice() (2) ticket->printInvoice() (3) Decorator::printInvoice() (4) Decorator::printInvoice() (5) &a
试题六(共15分)
阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰( Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。
16
【java代码】 class invoice{
public void printInvoice(){:
System.out.println ( \is the content of invoice!\ } }
class Decorator : extends Invoice { protected Invoice ticket; public Decorator(lnvoice t){ ticket = t; }
public void printinvoice(){ if(ticket != NULL) (1); } }
class FootDecorator extends Decorator{
17
the public FootDecorator(lnvoice t){ super(t); }
public void printinvoice (){
Systent.out.println( \is the header of the invoice! \ (2) ; } }
class FootDecorator extends Decorator public FootDecorator(invoice t):{ super(t); }
public void printlnvoice(){ (3) ;
Systent.out.println( 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(); }
18
{ \is the header of the}
程序的输出结果为:
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) ticket.printInvoice() (3) ticket.printInvoice()
(4) new FootDecorator(new HeadDecorator(t))
(5) new FootDecorator(new HeadDecorator(new 19
Decorator(null)))