阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某绘图系统存在Point、Line、Square三种图元,它们具有Shape接口,图元的类图关系如图6-1所示。现要将Circle图元加入此绘图系统以实现功能扩充。已

admin2006-03-15  33

问题 阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
   某绘图系统存在Point、Line、Square三种图元,它们具有Shape接口,图元的类图关系如图6-1所示。现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供的接口不能被系统直接使用。代码6-1既使用了XCircle又遵循了Shape规定的接口,既避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。代码6-2根据用户指定的参数生成特定的图元实例,并对之进行显示操作。
   绘图系统定义的接口与XCircle提供的显示接口及其功能如下表所示:

【代码6-1】
   class Circle  (1)  {
         private  (2)  pxc;
         public Circle(){pxc=new  (3)  ;
         }
         public void display(){
               pxc.  (4)  ;
         }
   }
【代码6-2】
   public class Factory{
   public  (5)  getShapeInstance(int type){ //生成特定类实例
           switch(type){
                   case 0: return new Point ( );
                  case 1: return new Rectangle ( ) ;
                  case 2: return new Line ( ) ;
                  case 3: return new Circle ( ) ;
                  default: return null;
         }
    }
    public class App{
    public static void main (String argv[] )
           if (argv. length != l) {
                  System. out.println ("error parameters !");
           return;
           }
           inttype= (new Integer (argv[0])) .intValue (
           Factory factory = new Factory ( ) ;
           Shape s;
           s=factory,   (6)  
           if (s==null) {
                 System.out.println ( "Error get instance !" )
                 return;
           }
           s.display () ;
           return;
           }
   }

选项

答案(1)implements Shape (2)XCircle (3)Xcircle() (4)displayIt() (5)Shape (6)getShapeInstance(type)

解析 题目中明确要求Circle具有Shape接口,所以,第1空应填上implements Shape。因为要重用XCircle类而不用从头开发一个新的Circle类,所以,凡是Circle类实现Shape的接口时都调用相应的XCircle类提供的方法。因此第2空应填上Xcircle,第3空应填上Xcircle()生成相应的XCircle的一个实例,第4空调用displaylt()来实现Shape接口中的display方法。阅读主程序,第6空调用factory对象的方法,而类Factory类只有一个方法为getShapeInstance,所以第6空为应填入getShapeinstance(type),参数为用户运行程序时指定的参数,程序中为type参数,表明需要生成哪一种类型的对象。同样,因为s是Shape类型的引用,所以,getShapeInstance的返回值类型为Shape,因此第5空应填入Shape。
转载请注明原文地址:https://jikaoti.com/ti/Mli7FFFM
0

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