首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和Java程序,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。 【说明】 以下Java代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分接口、类及其关系如图5一1所示。 【Java代码】 interfa
阅读以下说明和Java程序,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。 【说明】 以下Java代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分接口、类及其关系如图5一1所示。 【Java代码】 interfa
admin
2020-04-30
119
问题
阅读以下说明和Java程序,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。
【说明】
以下Java代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分接口、类及其关系如图5一1所示。
【Java代码】
interface DrawCircle{ //绘制圆形
public (1) ;
}
class RedCircle implements DrawCircle { //绘制红色圆形
public void drawCircle(int radius,int x,int y){
System.out.println("Drawing Circle[red,radius:"+radius+",
x: " + x + ", y: " + y + "]");
}
}
class GreenCircle implements DrawCircle{ //绘制绿色圆形
public void drawCircle(int radius,int x,int y){
System,out.println("Drawing Circle[green,radius:"+radius+",
x: " + x + ", y: " + y + "]");
}
}
abstract class Shape {//形状
protected (2) ;
public Shape(Drawcircle drawCircle){
this.drawCircle=drawCircle;
}
public abstract void draw();
}
class Circle extends Shape{//圆形
private int x,y,radius;
public Circle(int x,int y,int radius,DrawCircle drawCircle){
(3) ;
this.x=x;
this.y=y;
this.radius=radius;
}
public void draw(){
drawCircle. (4) ;
}
}
public class DrawCircleMain{
public static void main(String[]args){
Shape redCircle=new Circle(100,100,10, (5) );//绘制红色圆形
Shape greenCircle=new Circle(200,200,10, (6) );//绘制绿色圆形
redCircle.draw();
greenCircle.draw();
}
}
选项
答案
(1)void drawCircle(int radius,int x,int y) (2)DrawCircle drawCircle (3)super(drawCircle) (4)drawCircle(radius,x,y) (5)new RedCircle() (6)new GreenCircle()
解析
本题考查Java程序设计能力,涉及接口、类、对象、方法的定义和使用。要求考生根据给出的案例和代码说明,认真阅读理清程序思路,然后完成题目。题目所给代码清晰,易十理清思路。
先考查题目说明,实现一个简单绘图工具,绘制不同形状以及不同颜色的图形示意(采用打印相应信息的方式实现)。根据题目说明进行设计,给出图5—1的类图,定义相关的接口、类及其之间的关系。其中Shape定义抽象炎形状的接口(抽象方法)draw(),维护一个指向DrawCircle对象的引用drawCircle:Circle作为Shape的实现类,扩展了抽象类Shape,并具体实现draw()方法。DrawCircle定义实现绘制Circle的接口 drawCircle(),RedCircle和GreenCircle实现DrawCircle接口并定义绘制不同颜色Circle的具体drawCircle()方法的实现。
绘制圆形(DrawCircle)定义为接口,用interface关键字,其中声明一个方法接口,其中声明的方法默认为public,此处显式给出了public关键字,约定绘制圆形的方法名称、返回类型、参数,没有方法实现,直接用分号(;)结束,即:
public void drawCircle(int radius,int x,int y);
接口没有实现,不能创建对象,需要由具体实现类RedCircle和GreenCircle实现接口DrawCircle,接口实现采用implements关键字,即:
class RedCircle implements DrawCircle{…}
class GreenCircle implements DrawCircle{…}
其中定义了drawCircle()方法的具体实现,具体绘制红色圆形和绿色圆形:
public void drawCircle(int radius,int x,int y){…}
此方法的名称、返回类型、参数和访问控制与所实现接口中的相同。
Shape定义为抽象类,其中定义一个向DrawCircle类型对象的引用drawCircle:
protected DrawCircle drawCircle;
在Shape类中定义一个带参数的构造器,构造器参数DrawCircle drawCircle与对象的属性同名,用this关键字加以区分。其中this关键字用来引用当前对象或类实例,可以用点取属性或行为,即:
this.drawCircle=drawCircle;
其中,this.drawCircle表示当前对象的drawCircle属性,赋值符号右侧drawCircle表示参数。
抽象方法public abstract void draw()定义绘制图形的方法标识,具体绘制哪个图形由Shape的子类Circle实现。即Circle继承Shape,并在构造器中指定绘制圆形的参数——圆心、半径和DrawCircle实现,实现具体draw()方法,印:
class Circle extends Shape{
public Circle(int x,int y,int radius,DrawCircle drawCircle){…}
public void draw(){…}
}
其中,因为Shape中只定义了一个带参数的构造器,所以Circle的构造器中需显式调用父类Shape的构造器,并且只能出现在第一句,即super(drawCircle);Circle中实现父类的抽象方法draw(),具体调用drawCircle所引用对象的drawCircle()方法:
public void draw(){
drawCircle.drawCircle(radius,x,y);
}
Java动态绑定机制方便实现引用对象的绑定和多态方法调用。在RedCircle和GreenCircle中,采用DrawCircle接口类型引用,动态绑定具体对象,多态实现相应颜色圆形的绘制。
绘制图形工具的主程序中,可以根据需求定制所需绘制的图形。本题中在DrawCircleMain类的main()方法中,定义绘制红色圆形和绘制绿色圆形,创建具体绘制相应颜色圆形的对象并传递引用,并自动向上转型赋给Shape类型的引用,然后调用draw()方法,动态绑定相应Circle对象进行具体绘制。即:
public class DrawCircleMain{
public static void main(String[]args){
Shape redCircle=new Circle(100,100,10,new RedCircle()); //绘制红色圆形
Shape greenCircle=new Circle(200,200,10,new GreenCircle());//绘制绿色圆形
redCircle.draw();
greenCircle.draw();
}
}
综上所述,空(1)需要是实现接口中方法声明与实现类相同,即填入“void drawCircle(int radius,int x,int y)”;空(2)要表示维护一个指向DrawCircle的引用drawCircle,即填入“DrawCircle drawCircle”;空(3)处需要调用父类的构造器,即填入“super(drawCircle)”;空(4)为drawCircle调用其drawCircle方法绘制对应圆形,即填入“drawCircle(radius,x,y)”;空(5)处为创建绘制红色圆形对象,即填入“newRedCircle()”;空(6)处为绘制绿色圆形,即填入“new GreenCircle()”。
转载请注明原文地址:https://kaotiyun.com/show/h2jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel2010的A1单元格中输入函数“=IF(1<>2,1,2)”,按回车键后,A1单元格中的值为________________。
某企业的大数据工程项目包括如下四个阶段的工作:①数据获取,②数据清洗与整理,③数据分析,④数据展现。一般来说,工作量较大、花费时间较长的阶段是______(1),技术含量最高的阶段是______(2),准备向有关部门递交成果的阶段是______(3)。
计算机使用一段时间后发现,系统启动时间变长,系统响应迟钝,应用程序运行缓慢,为此,需要进行系统优化。系统优化工作不包括___________。
在Excel2007的A1单元格中输入函数“=LEFT(“CHINA”,1)”,按回车键后,则A1单元格中的值为()。
在Excel的A1单元格中输入函数“=6+16+MAX(16,6)”,按回车键后,A1单元格中显示的值为__________。
Word中“编辑”菜单下的“定位”命令的功能不能够定位(47)。
在数据库中能够唯一地标识一个记录被称为______。
请根据网页显示的效果图和网页中的元素说明,将HTML文本中(n)处的解答填入答题纸对应的解答栏内。说明在Ⅲ浏览器中输入常春藤大学招生办公室主页的网址并回车后,网页显示的效果如图5-1所示。HTML文本<html><he
从表1-1中为图1-1中(1)~(4)处选择合适设备名称(每个设备限选一次)。表1-2是路由器A上的地址变换表,将图1-2中(8)~(11)处空缺的信息填写在相应的位置。
随机试题
下列哪些可见于肺炎链球菌肺炎患者
男性40岁,1周前干咳左胸痛,近2日来,畏寒发热38.8℃,气急乏力。体检:心率94次/分,律齐,左胸廓饱满,呼吸运动减弱,左下叩之浊音至实音,语颤减低,呼吸音明显减低。经检查诊断明确后,所给予的下列治疗中哪一项是错误的
患者,女,26岁。产后18小时,突然发生阴道大量出血,色鲜红,头晕目花,心悸怔忡,肢冷汗出,面色苍白;舌淡,脉虚数。下列有关该病的西医治法,说法错误的是
丁公司欠甲公司100万元。2005年10月,甲公司与丙公司签订协议,约定甲公司对丁公司的100万元债权由丙公司享有,但未通知丁公司。同年12月,丙公司向法院起诉丁公司要求归还欠款,有关该案的表达正确的是:()
项目风险的分解途径不包括()。
民用住宅楼梯的坡度范围,宜在()之间。
在临时用地指标中,要求平面布置合理、紧凑,在满足环境、职业健康与安全及文明施工要求的前提下尽可能减少废弃地和死角,临时设施占地面积有效利用率大于()。
简述蒙古统一与元朝建立的经过。
(),对公安工作和队伍建设提出了新的挑战,公安工作和公安队伍建设存在的突出问题迫切需要抓紧解决,这是当前加强正规化建设、明确现阶段新的管理标准的出发点和立足点。
Standingupstraightandkeepingyourbodycenteredmayseemlikesecondnaturetomostofus.Butforpeoplewithbalancedisor
最新回复
(
0
)