国内最大的教育考试网站之一
2008年12月软考软件设计师每日一练(12月15日)
2008-12-15 12:50:40 来源:优易学(Qnr.Cn) 作者:Qnr.Cn

试题四、
阅读以下关于某绘图系统的技术说明、部分UML类图及Java程序,将Java程序中(1)~(6)空缺处的语句填写完整。
【说明】
某绘图系统存在Point、Line和Square 3种图元,它们具有Shape接口,图元的类图关系如图3-23所示。

图3-23  某绘图系统部分图元的类图
现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供了的接口不被系统直接使用。【Java代码6-1】既使用了XCircle又遵循了Shape规定的接口,即避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。【Java代码6-2】根据用户指定的参数生成特定的图元实例,并对之进行显示操作。
该绘图系统定义的接口与XCircle提供的显示接口及其功能如表3-19所示。
表3-19  绘图系统定义的接口与XCircle显示接口功能表

Shape

XCircle

   

Display()

DisplayIt()

显示图元

【Java代码6-1】
class Circle   (1)  {
 private   (2)   pxc;
 public Circle () { 
pxc = new   (3)  ;
 }
 public void display(){
pxc.  (4)  ;
 }
}
【Java代码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 !=1){
 System.out.println("error parameters!");
 return;
}
int type=(new Integer(argv[0])).intValue();
Factory factory=new Factory();
Shap s ;
s= factory.  (6) 
if(s==null){
 System.out.println("Error get instance!");
 Return;
}
s.display();
return;
 }
}

 

进入优易学网论坛看答案

【字体: 】【收藏本页】【打印本文】【告诉好友 】【投稿邮箱