试题六(15分)
阅读以下说明和Java代码,将应填入 __(n)__ 处的字名写在答题纸的对应栏内。
[说明]
某绘图系统存在Point、Line、Square三种图元,它们具有Shape接口,图元的类图关系如图6-1所示。现要将Circle图元加入此 绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle又遵循了 Shape规定的接口。既避免了从头开发一个新的Cicle类,又可以不修改绘图系统中已经定义的接口,代码6-2根据用户指定的参数生成特定的图元实 例,并对之进行显示操作。
绘图系统定义的接口与XCircle提供的显示接口及其功能如下表所示:
Shape | XCircle | 功能 |
display() | displayit() | 显示图元 |
[图6-1]
[代码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 !=1){
System.out.println("error parameters!");
return;
}
int type=(new Integer(argv[0])).intValue();
Factory factory=new Factory();
if(s==null){
System.out.println("Error get instance!");
Return;
}
s.display();
return;
}
}