```package 第五章;
//为电视和电灯/接口类,提供开关的命令集
public interface Command {
void on();
void off();
}
package 第五章;
import java.util.Scanner;
public class LightCommand implements Command {
//电灯命令类,实现接口Command
protected Light light;//指向要控制电灯的对象
//电灯命令器的构造函数,接受电灯对象
public LightCommand(Light light) {
this.light=light;
}
@Override
public void on() {
//System.out.println("开灯");
/*Scanner s=new Scanner(System.in);
System.out.println("选择电灯的亮度");
int liangdu=s.nextInt();*/
light.turnLight(100);
}
@Override
public void off() {
light.turnLight(0);
}
}package 第五章;
public class Light {
public void turnLight(int degree) {
if(degree==0) {
System.out.println("关灯");
}
else {
/*if(degree==100)
System.out.println("此时灯光的亮度已经调整为最大值");
else
System.out.println("此时灯光的亮度等级为:"+degree);*/
System.out.println("开灯,此时灯光的亮度为最大100");
}
}
}//调整灯光的亮度
package 第五章;
import java.util.Scanner;
public class TVCommand implements Command {
//电视机命令类,实现接口Command
protected TV tv;//指向要控制的电视机的对象
protected int channel;
//构造函数,接受电视对象
public TVCommand(TV tv,int channel) {
this.tv=tv;
this.channel=channel;
}
@Override
//设置电视的频道,假设为1频道
public void on() {
/*System.out.println("开机");
Scanner s=new Scanner(System.in);
System.out.println("选择电视的频道");
channel=s.nextInt();*/
tv.setchannel(channel);
}
@Override
public void off() {
tv.setchannel(0);
}
}package 第五章;
public class TV {
//0表示关机,1表示开机并切换到1频道
public void setchannel(int channel) {
if(channel==0) {
System.out.println("关机");
}
else {
System.out.println("开机,此时为:"+channel+"频道");
}
}
}
package 第五章;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Light light=new Light();
LightCommand lightconmmand=new LightCommand(light);
TV tv=new TV();
TVCommand tvcommand=new TVCommand(tv,1);
RemoteController remotecontroller=new RemoteController();
System.out.println(" 遥控器 ");
System.out.println(" "+"开"+" "+"关");
System.out.println("电器1"+" "+"0"+" "+"1");
System.out.println("电器2"+" "+"2"+" "+"3");
System.out.println("用户输入按键:");
Scanner s=new Scanner(System.in);
int a=s.nextInt();
System.out.println("用户输入的是:"+a);
switch(a) {
case 0:
case 1:
remotecontroller.setCommand(a, lightconmmand);
remotecontroller.onPressButton(a);
break;
case 2:
case 3:
remotecontroller.setCommand(a, tvcommand);
remotecontroller.onPressButton(a);
break;
default:
System.out.println("没有找到合适的开关按钮");
}
}
}
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208205417593.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01hcnZlbF85,size_16,color_FFFFFF,t_70)
**来自轻大**《Java课程设计经典课堂》
2020-12-08
最新推荐文章于 2024-09-25 11:06:23 发布
这个Java课程设计示例展示了如何通过接口和类实现遥控器控制电视和电灯的模拟。代码中定义了Command接口,实现了LightCommand和TVCommand类来分别对应电灯和电视的开关操作。RemoteController类作为遥控器,根据用户输入的按键调用相应设备的命令。用户可以输入数字来选择开或关的操作,并指定电器类型。
摘要由CSDN通过智能技术生成