首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和Java代码,将应填入(n)处的字句写在对应栏内。 【说明】 现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x
阅读以下函数说明和Java代码,将应填入(n)处的字句写在对应栏内。 【说明】 现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x
admin
2009-02-15
31
问题
阅读以下函数说明和Java代码,将应填入(n)处的字句写在对应栏内。
【说明】
现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x1,x2,y1,y2)画一条直线。当实例画矩形时,确定使用DP1还是DP2。
为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图9-6显示了各个类间的关系。
这样,系统始终只处理3个对象:Shape对象、Drawing对象、DP1或DP2对象。以下是 Java语言实现,能够正确编译通过。
【Java代码】
//DP1.java文件
public class DP1{
static public void draw_a line(double x1,double y1,
double x2,double y2){
//省略具体实现
}
}
//DP2.java文件
public class DP2{
static public void drawline(double x1,double y1,
double x2,double y2){
//省略具体实现
}
}
//Drawing.java文件
(1) public class Drawing{
abstract public void drawLine(double x1, double y1, double x2, double y2);
}
//V1Drawing.java文件
public class V1Drawing extends Drawing{
public void drawLine(double x1, double y1, double x2, double y2){
DP1.draw_a_line(x1,y1,x2,y2);
}
}
//V2Drawing.java文件
public class V2Drawing extends Drawing{
public void drawLine(double x1,double y1,
double x2, double y2)(//画一条直线
(2);
}
}
//Shape.java文件
abstract public class Shape{
abstract public void draw();
private (3) _dp;
Shape(Drawing dp){
_dp=dp;
}
protected void drawLine(double x1,double y1,
double x2, double y2){
(4);
}
}
//Rectangle.java文件
public class Rectangle extends Shape{
private double_x1,_x2,_y1,_y2;
public Rectangle(Drawing dp,
double x1,double y1,
double x2,double y2){
(5);
_x1=x1;_x2=x2;
_y1=y1;_y2=y2;
}
public void draw(){
//省略具体实现
}
}
选项
答案
(1) abstract (2) DP2.drawline(x1,x2,y1,y2) (3) Drawing (4) _dp.drawLine(x1,y1,x2,y2)
解析
由类Drawing的drawLine()方法是abstract的,因此Drawing要么是接口,要么是抽象类,在此为抽象类,故空(1)应填abstract。
空(2)是调用DP2系统的相应方法,可参照DP1的对应函数的函数体,但要注意参数不完全相同,应填DP2.drawline(x1,x2,y1,y2)。
_dP属性是用来存储Drawing对象的,参照Shape的构造函数可确认这一点,空(3)应填 Drawing。
Shape类的drawLine方法是通过调用Drawing对应的方法来实现所需要的功能,因此空(4)应填_dp.drawLine(x1,y1,x2,y2)。
空(5)显然是基类构造函数,应填super(dp)。
(5) super(dp)
转载请注明原文地址:https://kaotiyun.com/show/4gDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某开发小组欲开发一个软件系统,实现城市中不同图书馆的资源共享,包括实体资源和电子资源,共享规则可能在开发过程中有变化。客户希望开发小组能尽快提交可运行的软件,且可以接受多次交付。这种情况下最适宜采用(31)开发过程模型。主要是因为这种模型(32)。(
设元素a、b、c、d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到________。
若某线性表长度为n且采用顺序存储方式,则运算速度最快的操作是_______。
按照测试实施组织,可将测试划分为开发方测试、用户测试、第三方测试。下面关于开发方测试的描述正确的是______。①开发方测试通常也叫“验证测试”或“Alpha测试”②开发方测试又称“Beta测试”③开发方测试可以从软件产品编码结束之
系统可维护性的评价指标不包括______。
编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段,其中,(22)并不是每种编译器都必需的。
在进行产品评价时,评价者需要对产品部件进行管理和登记,其完整的登记内容应包括(35)。①部件或文档的唯一标识符。②部件的名称或文档标题。③文档的状态,包括物理状态或变异方面的状态。④请求者提供的版本、配置和日期信息。
网络测试不能解决的问题是______。A.连通性B.丢包C.全表扫描D.延迟
在进行软件编码规范评测过程中需要围绕几个方面的内容展开,以下描述中不属于编码规范评测内容的有(37)。
堆是一种数据结构,分为大顶堆和小顶堆两种类型。大(小)顶堆要求父元素大于等于(小于等于)其左右孩子元素。则___________(41)是一个大项堆结构,该堆结构用二叉树表示,其高度(或层数)为___________(42)。(42)
随机试题
太阴病证的临床表现有
泌尿系结石首选X线检查方法是
施工成本目标的分解,要通过编制( )来进行。
法玛将信息分为()三类,并在此基础上将市场的有效性分为三种形式。
某企业盈余公积年初余额为50元,本年利润总额为600万元,所得税费用为150万元,按净利润的10%提取法定盈余公积,并将盈余公积10万元转增资本。该企业盈余公积年末余额为()万元。
契税纳税义务发生时间可以是()。
关于转让定价税制,下列说法中正确的是()。
小雨同学参加体能测试,其中跳远必须达到190厘米,才算合格,并且每个人有两次机会。小雨通过平时的训练,他每次跳过190厘米的概率为0.6,那么他这次合格的概率有多大?
检验几种因素是否有实质上的差异,或者判断几次重复实验的结果是否同质,这种卡方检验是()
程序计数器(或指令地址寄存器)属于CPU的(25)部件。
最新回复
(
0
)