阅读以下函数说明和Java代码,将应填入(n)处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。 需要新增图形Circle,又已知有

admin2010-12-17  30

问题 阅读以下函数说明和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;
       }
   }

(5)

选项

答案getShapeInstance(type)

解析 Shape是接口,其中的方法都是抽象方法,故空(1)应填abstract。
   shape是接口,故空(2)应填implements,表示实现某个接口。
   初始化一个XXCircle实例,空(3)应填new XXCircle()。
   方法getShapeInstance(int type)的返回值有new Line()、new Square()以及new Circle(),参照类的层次结构,可得空(4)应填Shape。
   Factory类仅定义了一个方法getShapelnstance,而此处语义正是取得一个形状进行显示,故空(5)应填getShapelnstance(type)。
转载请注明原文地址:https://kaotiyun.com/show/xvDZ777K
0

相关试题推荐
最新回复(0)