题目详情

阅读下列说明和Java代码,回答问题,将解答填入答题纸的对应栏内。

【说明】

某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如下图所示。

初级程序员,章节练习,初级程序员押题

【Java代码】

【Java代码】

class Light {

public Light() {}

public Light(String name) { /* 代码省略 */ }

public void on() { /* 代码省略 */ } // 开灯

public void off() { /* 代码省略 */ } // 关灯

// 其余代码省略

}

(1) {

public void execute();

}

class LightOnCommand implements Command { // 开灯命令

Light light;

public LightOnCommand(Light light) { this.light=light; }

public void execute() { (2) ; }

}

class LightOffCommand implements Command { // 关灯命令

Light light;

public LightOffCommand(Light light) { this.light=light; }

public void execute(){ (3) ; }

}

class RemoteControl { // 遥控器

Command[] onCommands=new Command[7];

Command[] offCommands=new Command[7];

public RemoteControl() { /* 代码省略 */ }

public void setCommand(int slot, Command onCommand, Command offCommand) {

(4) =onCommand;

(5) =offCommand;

}

public void onButtonWasPushed(int slot) {

(6) ;

}

public void offlButtonWasPushed(int slot){

(7) ;

}

}

class RemoteLoader {

public static void main(String[] args) {

RemoteControl remoteControl=new RemoteControl();

Light livingRoomLight=new Light("Living Room");

Light kitchenLight=new Light("kitchen");

LightOnCommand livingRoomLightOn=new LightOnCommand(livingRoomLight);

LightOffCommand livingRoomLightOff=new LightOffCommand(livingRoomLight);

LightOnCommand kitchenLightOn=new LightOnCommand(kitchenLight);

LightOffCommand kitchenLightOff=new LightOffCommand(kitchenLight);

remoteControl.setCommand(0, livingRoomLightOn, livingRoomLightOff);

remoteControl.setCommand(1, kitchenLightOn, kitchenLightOff);

remoteControl.onButtonWasPushed(0);

remoteControl.offButtonWasPushed(0);

remoteControl.onButtonWasPushed(1);

remoteControl.offButtonWasPushed(1);

}

}

正确答案及解析

正确答案
解析

(1)interface Command

(2)light.on()

(3)light.off()

(4)onCommands[slot]

(5)offCommands[slot]

(6)onCommands[slot].execute()

(7)offCommands[slot].execute()

你可能感兴趣的试题

单选题

E-mail地址由分隔符“()”分为前后两部分,分别指明用户名及邮件

  • A.//
  • B.\\
  • C.@
查看答案
单选题

某 html 文档中有如下代码,则在浏览器中打开该文档时显示为( )。

<form>

Listl:

<input type="text" name="List1" />

<br / >

List2:

<input type="text" name="List 2 " />

< /form>

初级程序员,章节练习,初级程序员真题

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案
单选题

设有商品关系P(商品名,条形码,供应商号,价格,数量), “条形码”唯一标识关系P中的每一个元组,商品名不能为空,供应商号是关系P的外键。另有供应商关系S(供应商号,供应商名,地址,电话)。关系 P 中的商品名是唯一的。建立商品关系 P 的 SQL语句如下所示:

CREATE TABLE P( 商品名CHAR(30)( ),

条形码CHAR(30) ( ) ,

供应商号 CHAR(5) ,

价格 CHAR(20) ,

数量CHAR(20)

( )(供应商号) REFERENCES S(供应商号));

查询供应商及价格小于等于 2500 元且大于等于 1280 元的“电冰箱”的数量的SQL语句为:

SELECT商品名,供应商名,价格,数量

FROM P

WHERE商品名= ’电冰箱’ AND ( ) ;

将供应商号“12021”所供应的商品价格上涨3%的SQL语句为:

UPDATE P

( )

WHERE 供应商号= ’12021’;

查询供应商地址包含“西安”的供应商名及电话的SQL语句为:

SELECT供应商名,电话

FROM S

WHERE ( );

  • A.NULL
  • B.UNIQUE
  • C.NOT NULL
  • D.NOT NULL UNIQUE
查看答案
单选题

函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为( );若以传引用方式调用g,则函数f的返回值为( )。

初级程序员,章节练习,初级程序员真题

  • A.3
  • B.4
  • C.6
  • D.7
查看答案
单选题

初级程序员,章节练习,初级程序员真题

初级程序员,章节练习,初级程序员真题

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案

相关题库更多 +