问答题
试题六
阅读以下说明和Java 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
某绘图系统存在Point、Line、Square 三种图元,它们具有Shape 接口,图元的类图关系如图6-1 所示。现要将Circle 图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle 类,且完全满足系统新增的Circle 图元所需的功能,但XCircle 不是由Shape派生而来,它提供的接口不能被系统直接使用。代码6-1 既使用了XCircle 又遵循了Shape 规定的接口,既避免了从头开发一个新的Circle 类,又可以不修改绘图系统中已经定义的接口。代码6-2 根据用户指定的参数生成特定的图元实例,并对之进行显示操作。
绘图系统定义的接口与XCircle 提供的显示接口及其功能如下表所示:
[图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)___getShape Instance(int tyoe){ //生成特定类实例
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 viod main (String argv[]){
if (argv.length ! =1){
System.out.println (“error parameters !”);
Return;
}
int type = (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;
}
}