首页
登录
从业资格
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,
免费题库
2022-08-02
55
问题
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表6-1所示。表6-1不同的绘图程序
该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如图6-1所示的类图。
图6-1类图【Java代码】(1)Drawing{(2);(3);}class DP1{static public void draw_a_line(double x1,double y1,double x2,double y2){/*代码省略*/}static public void draw_a_circle(double x,double y,double r){/*代码省略*/}}class DP2{static public void drawline(double x1,double y1,double x2,double y2){/*代码省略*/}static public void drawcircle(double x,double y,double r){/*代码省略*/}}class V1Drawing implements Drawing{public void drawLine(double x1,double y1,double x2,double y2){/*代码省略*/}public void drawCircle(double x,double y,double r){(4);}}class V2Drawing implements Drawing{public void drawLine(double x1,double y1,double x2,double y2){/*代码省略*/}public void drawCircle(double x,double y,double r){(5);}}abstract class Shape{private Drawing_dp;(6);Shape(Drawing dp){_dp=dp;}public void drawLine(double x1,double y1,double x2,double y2){_dp.drawLine(x1,y1,x2,y2);}public void drawCircle(double x,double y,double r){_dp.drawCircle(x,y,r);}}class Rectangle extends Shape{private double_x1,_x2,_y1,_y2;public Rectangle(Drawing dp,double x1,double y1,double x2,double y2){/*代码省略*/}public void draw( ){/*代码省略*/}}class Circle extends Shape{private double_x,_y,_r;public Circle(Drawing dp,double x,double y,double r){/*代码省略*/}public void draw( ){drawCircle(_x,_y,_r);}}
选项
答案
解析
(1)public interface或interface(2)public void drawLine(double x1,double y1,double x2,double y2)或void drawLine(double x1,double y1,double x2,double y2)(3)public void drawCircle(double x,double y,double r)或void drawCircle(double x,double y,double r)(4)DP1.draw_a_circle(x,y,r)(5)DP2.drawcircle(x,y,r)(6)abstract public void draw()本题考查Java面向对象程序设计。这类题型主要涉及两个方面的考查内容:Java语法与设计模式。所谓语法考查是要求考生清楚接口、抽象类、抽象方法等的定义,相关意思能用正确方式表达出来。而设计模式层次的考查主要是模式间关联的建立。在本题中,(1)~(3)都是典型的语法问题,由于Drawing在后面被实现(implements)了,所以他是一个接口,帮(1)为:public interface。继续通过这条线索分析可知,Drawing应有drawLine和drawCircle两个方法的定义。故(2)(3)分别为:public void drawLine(double x1,double y1,double x2,double y2)和public void drawCircle(double x,double y,double r)。接下来的第(4)和(5)是同样类型的空,都需要完成函数的实现部分,此处的实现,一般不要求考生真正实现功能,而是通过别的函数完成该职能。从对应的类图可以了解到V1Drawing与DP1存在依赖关系,而DP1中有draw_a_circle()的函数已完成了画圆的操作,所以在此只需要调用这个方法即可。所以(4)和(5)分别为:DP1.draw_a_circle(x,y,r)和DP2.drawcircle(x,y,r)。最后的(6),可以通过分析类图得知,因为类图中标明Shape类中有:draw()、drawLine()和drawCircle()三个函数,而在Shape类中缺draw(),所以需要补上该函数的定义,即abstract public void draw()。
转载请注明原文地址:https://tihaiku.com/congyezige/2409645.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
下列关于软件著作权中翻译权的叙述不正确的是:翻译权是指( )的权利。A.将原软
下图是一个软件项目的活动图,其中顶点表示项目里程碑,边表示包含的活动,边上的权重
以下属于DBA职责的是( )。A.开发应用程序 B.负责系统设计 C.系统
某旅行社拟开发一套旅游管理系统,以便管理旅游相关的信息。 1.旅行社可发布
某学校拟开发一套实验管理系统,对各课程的实验安排情况进行管理。 【需求分析
进度安排的常用图形描述方法有Gantt图和PERT图。Gantt图不能清晰地描述
两个以上的申请人分别就相同内容的计算机程序的发明创造,先后向国务院专利行政部门提
以下有关测试的说法中,错误的是()A.测试证明了程序的正确性 B.测试无法执
以下计算机软件著作权权利中,不可以转让的是()A.发行权 B.复制权 C.
以下关于磁盘碎片整理程序的描述中,正确的是()A.磁盘碎片整理程序的作用是延长
随机试题
Forthispart,youareallowed30minutestowriteashortessaybasedonth
Thecaseforcollegehasbeenacceptedwithoutquestionformorethanagener
属于网络202.15.200.0/21的地址是()。A.202.15.198
苏联苏霍姆林斯基的教育思想的核心内容是()。A.A.认知结构的教育理论 B.B
以下属于合同解除的价款结算的有( )。A.发承包双方协商一致解除合同的 B.
功能敛肺化痰定喘,止带缩尿的药物是()A.白果 B.葶苈子 C.桑白皮
呕吐,腹泻,痉挛的是A.溴隐亭 B.可卡因 C.异烟肼 D.环磷酰胺 E
证券公司从事定向资产管理业务,应当自专用证券账户开立之日起()个交易日内,将专
班级授课制首行于()的欧洲。 A.15世纪B.16世纪 C.
结合自己的经验,并用概念的形式反映事物的特征为A、知觉的整体性 B、知觉的恒常
最新回复
(
0
)