2020-12-08

这个Java课程设计示例展示了如何通过接口和类实现遥控器控制电视和电灯的模拟。代码中定义了Command接口,实现了LightCommand和TVCommand类来分别对应电灯和电视的开关操作。RemoteController类作为遥控器,根据用户输入的按键调用相应设备的命令。用户可以输入数字来选择开或关的操作,并指定电器类型。
摘要由CSDN通过智能技术生成
```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课程设计经典课堂》


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值