试题四、
阅读以下关于某绘图系统的技术说明、部分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; } } |
进入青年人网论坛看答案
责任编辑:小草