首页
登录
从业资格
阅读以下说明、图和Java代码,填补Java代码中的空缺(1)—(5),将解答写
阅读以下说明、图和Java代码,填补Java代码中的空缺(1)—(5),将解答写
最全题库
2022-08-02
62
问题
阅读以下说明、图和Java代码,填补Java代码中的空缺(1)—(5),将解答写在答题纸的对应栏内。 【说明】 已知某公司主要有两大类耗电资产(Asset):计算机(ComputerAsset)和建筑物(BuildingAsset)。为了节约能源,通过控制各种电源,将可关闭的房灯、计算机显示器等在夜间关闭。 为了实现上述需求,设计了如下图所示的类图,并用下面的Java代码加以实现。
【Java代码】abstract class Asset{ /*通用资产,基类*/ }interface PowerSwitchable{ /*可在夜间关闭的电源的物体实现该接口*/ public void powerDown( ); public void powerUP( ); } abstract class BuildingAsset extends Asset{ /*建筑物资产*/ protected int room; public BuildingAsset(int room){ this.room=room; } } abstract class BuildingLight extends BuildingAsset{ //灯的通用信息:fluorescent / incandescent 等,略 BuildingLight(int room Number){ super(roomNumber); } } class EmergencyLight(1){ /*应急灯,永不关闭*/ EmergencyLight(int roomNumber){ super(roomNumber); } } class RoomLights (2){ RoomLights(int roomNumber){ super(roomNumber);} public void powerDown(){ /*关电源,代码略*/ } public void powerUp(){ /*开电源,代码略*/ } } /*ComputerAsset、ComputerCPU和ComputerMonitor代码略*/ public class BuildingManagement{ Asset things[]=new Asset[24]; int numItems=0; public void goodNight(){ /*值班员定时“关闭”时调用,关闭可关闭的电源*/ for(int i=0;i<things.length;i++) if(things
instanceof (3)) ((PowerSwitchable)things
).powerDown(); } /*goodMorning( )与goodNight( )类似,依次调用powetUp( ),其实现细节此处略*/ public void add(Asset thing){ /*为建筑添加资产*/ things[(4)]=thing; } public static void main(String[ ]args) { BuildingManagement b1=(5) BuildingManagement( ); b1.add(new RoomLights(101)); //101房间的控制灯 b1.add(new EmergencyLight(101)); //101房间的应急灯 b1.add(new ComputerCPU(10104)); //101房间4号桌上的计算机主机 b1.add(new ComputerMonitor(10104)); //101房间4号桌上的计算机显示器 b1.goodNight( ); delete b1; } }
选项
答案
解析
(1)extends BuildingLight
(2)extends BuildingLight implements PowerSwitchable
(3)PowerSwitchable
(4)numItems++
(5)new
本题考查面向对象程序设计及其 Java 语言实现的能力,涉及类和接口、抽象类、对象、方法的定义和相关操作,以及继承和实现关系。要求考生根据给出的案例、类图和执行过程说明,认真阅读理清程序思路,然后完成题目。
先考查针对案例的特定需求,构建类图整体结构。本题中根据类图定义了类:BuildingManagement、 Asset、ComputerAsset、BuildingAsset、ComputerCPU、ComputerMoniter、BuildingLight、RoomLights、EmergencyLight和 PowerSwitchable。其中 Asset 为抽象类,表示通用资产,作为所有资产类的基类。ComputerAsset 表示计算机有关资产、BuildingAsset 表示建筑物有关资产,两者作为 Asset 的子类,继承了 Asset类,ComputerCPU、ComputerMoniter分别表示计算机 CPU和显示器,继承了 ComputerAsset, BuildingLight是一种建筑物资产,表示建筑物内的照明设备,继承了Bui1dingAsset ,而照明设备有RoomLights和 EmergencyLight,作为Bui1dingLight的子类。由于案例中两大类耗电资产(Asset):计算机(ComputerAsset)和建筑物(Building Asset)中,可在夜间关闭的房灯(RoomLights)、计算机显示器(ComputerMoniter)属于不同 的资产类型,所以将可关闭的资产单独进行设计为一种类型PowerSwitchable ,规定可在夜间关闭电源的物体的开关电源接口,即包含两个方法声明。因此,RoomLights和 ComputerMoniter实现了 PowerSwitchable。
Java 中继承用关键字extends后加父类名。本题目中,Emergency Light是 BuildingLight的子类,并且在子类的构造方法中,调用父类的构造方法,采用 super(),并且调用父类的构造方法必须要是构造方法中的第一条语句。RoomLights是 BuildingLight 的子类,在子类的构造方法中,同 EmergencyLight,调用父类的构造方法super()。同时RoomLights和 ComputerMonitor均是可关闭的,具有开关电源的相同接口。Java 中的继承是单根继承,即只能有一个父类,而接口可以实现多个,因此将PowerSwitchable定义为接口,也一样可作为引用数据类型,和类继承一样也表达"是一种"关系,采用 interface 关键字。RoomLights 和 ComputerMonitor均实现 PowerSwitchable接口,用 implements关键字。
系统中有各类资产,在BuildingManagement中使用 Asset通用资产类型数组,用 add函数依次为建筑添加资产。由于 add方法中对数组添加元素只有一条语句,需要在下标中完成指明当前添加资产元素的下标,并将下标后移。在 goodNight方法中对可关闭电源的资产进行控制,需要判定其是否可关闭,也就是资产是否为PowerSwitchable类型的实例,用 instanceof 关键字,判定对象是否为实现通用接口PowerSwitchable 类型的实例。如果对象的类型是实现 PowerSwitchable接口的类型,则转换为PowerSwitchable 接口类型,并利用动态绑定机制,正确绑定到具体对象,执行对象的关闭电源行为。
类BuildingManagement中没有定义构造方法,编译器会生成一个缺省的构造方法,采用 new 关键字进行对象创建。
因此空(1)需要表现出继承extends BuildingLight;空(2)处添加继承和实现接口,即extends BuildingLight implements PowerSwitchable;空(3)处将接口作为一种引用类型,用 instanceof 判断对象是否为接口类型,即 PowerSwitchable;空(4)处完成指明当前添加资产元素的下标,并将下标后移,即 numItems++;空(5)处补充通过使用编译器生成的缺省构造方法创建对象,即 new。
转载请注明原文地址:https://tihaiku.com/congyezige/2427576.html
本试题收录于:
初级程序员题库软件水平考试初中高级分类
初级程序员
软件水平考试初中高级
相关试题推荐
关于创建屋顶所在视图,说法正确的是()。A.迹线屋顶可以在立面视图和剖面视图中创
建筑施工图包括建筑总平面图、建筑平面图、建筑立面图、建筑剖面图和()。A.建筑效
根据《建筑工程设计信息模型分类和编码标准》,分类对象编码由表编码、大类代码、中类
关于创建屋顶所在视图说法正确的是()。A.迹线屋顶可以在立面视图和剖面视图中创建
关于在平面视图和立面视图创建管道的说法正确的是()。A.在平面视图中创建管道可以
按照()的原理,建筑工程图纸分为建筑平面图、立面图和剖面图。A.三视图 B.中
网页中代码"inputtype=textname="foo"size=20
负责解释执行JavaScript代码的是()。A.Web服务器 B.Web浏览
通过内部发起连接与外部主机建立联系,由外部主机控制并盗取用户信息的恶意代码为(
下面的XML代码段中,语法正确的是()。A.<!-xml示例-!><?xml
随机试题
Whencanpeoplethinkaboutoureyesveryoften?Onthetimewhenwe______.[br]
假设某商业银行总资产为1000亿元,资产加权平均久期为6年,总负债900亿元,负
患者,女性,32岁,因绞窄性肠梗阻,行小肠部分切除术。术后并发肠瘘,大量小肠液丢
下列历史事件按时问排序排列正确的一组是()。A.戊戌变法—马关条约—五四运动
关于眩晕的论述不恰当的是( ) A.眩即眼花,晕即头晕 B.重者如坐车船
具有消食导滞、祛痰通便功能的中成药是A.一捻金 B.肥儿丸 C.健脾康儿片
久用可引起味觉及嗅觉缺损、脱发、皮疹等不良反应的降压药是A.卡托普利 B.氯沙
共用题干 女,40岁。右后牙晚间隐痛3天。2个月来,该部位一直食甜和冷物痛。检
共用题干 男,35岁。右上后牙夜痛不能眠1日。3个月来右侧下后牙冷水引起疼痛,
某大型乳品加工企业近两年先后发生不同类型的职业病事件,该企业决定开展全公司的职业
最新回复
(
0
)