软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷48

0
收藏   分享
  • 卷面总分:75分
  • 试卷类型:模拟考试
  • 测试费用:免费
  • 答案解析:是
  • 练习次数:23次
  • 作答时间:150分钟
试卷简介
试卷预览
1

阅读以下函数说明和Java代码,将应填入(n)处的字句写上。

 [说明]

 现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。

 需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXCircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象;当Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图7-1显示了各个类间的关系。以下是JAVA语言实现,能够正确编译通过。

 [图7-1]

  

 [Java代码]

 //Shape.java文件

 public interface Shape{

   public (1) void display();

 }

 //XXCircle.jave文件

 public class XXCircle{

   public void displayIt(){

   //省略具体实现

   }

 }

 //Circle.java文件

 public class Circle (2) Shape{

   private XXCircle pcx=(3);

   public void display(){

     pcx.displayIt();

   }

 }

 //Factory.java文件

 public class Factory{

   public (4) getShapeInstance(int type){

     switch(type){

     case 1:return new Line();

     case 2:return new Square();

     case 3:return new Circle();

     default:return null;

     }

   }

 }

 //Main.java文件

 public class Main{

   public static void main(String[]args){

     int type=1;

     Factory factory=new Factory();

     Shape s;

     s=factory. (5);

     if(s==null){

       System.out.println("Error get the instance!");

       return;

     }

     s.display();

     return;

   }

 }

(1)

1

阅读以下说明和C++代码,将应填入(n)处的字句写上。

 [说明]

 现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。

 需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXcircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象: Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图6-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。

 [图6-1]

 

 [C++代码]

 class Shape{

 public:

    (1) void display()=0;

 };

 class Line:public Shape{//省略具体实现

 };

 class Square:public Shape{//省略具体实现

 };

 class XXCircle{

 public:

   void displayIt(){

   //省略具体实现

   }

 //省略其余方法和属性

 };

 class Circle:public Shape{

 private:

   XXCircle *pxc;

 public:

   Circle();

   void display();

 };

 Circle::Circle(){

   pxc=(2);

 }

 void Circle::display()

 {

   pxc->(3);

 }

 class Factory{

 public:

    (4) getshapeInstance(int type){//生成特定类实例

     switch(type){

       case 1:return new Square;

       case 2:return new Line;

       case 3 :return new Circle;

       default:return NULL;

     }

   }

 };

 void main(int argc,char*argv[]){

   if(argc !=2){

     cout<<"error parameters!"<<endl;

     return;

   }

   int type=atoi(argv[1]);

   Factory factory;

   Shape*s=factory. (5);

   if(s==NULL){

     cout<<"Error get the instance!"<<endl;

     return;

   }

   s->display();

   delete s;

   return;

 }

(1)