1 题目
模拟USB接口的功能
我们在使用计算机的时候经常会用到USB接口,鼠标、键盘等都是带USB接口的设备,我们只需要将鼠标、键盘插入到计算机的USB接口中就能正常使用这些带USB接口的外设。
通过JAVA程序的面向接口编程的设计思想,模拟计算机使用USB接口驱动鼠标和键盘的过程。
要求:
① 定义USB接口,接口中有turnOn()启动USB设备的方法,和turnOff()关闭设备的方法;
②定义Mouse鼠标、KeyBoard键盘、MicroPhone麦克风类实现USB接口;
③定义计算机Computer类
powerOn()开机,开机前需要加载所有的USB设备;
powerOff()关机,关机前需要弹出所有的USB设备。
注意:开机的时候鼠标等设备可以没有插进去
2 思路分析
2.1 写一个接口USB,里面有turnOn方法和turnOff方法
2.2 写Mouse(鼠标)、KeyBoard(键盘)、MicroPhone(麦克风)类实现USB接口
2.3 重写turnOn和turnOff需要打印相应的对象信息
2.4 Computer类建立一个接口数组,用来存放每个实现接口的的子类的实例化对象
2.5 Computer类中创建一个单次添加设备方法addUSB(USB usb),使得每次调用该方法时,该电脑会在接口数组对象不为null的位置插上一个设备
2.6 Computer中的powerOn是遍历完所有的USB接口,若接口对象不为null,就调用该设备的重写的turnOn方法,当遍历完所有的后会打印电脑启动成功。
2.7 Computer中的powerOff是遍历完所有的USB接口,若接口对象不为null,则调用该设备的被重写的turnOff方法,然后把该接口对象赋值为null,当遍历完成所有的后会打印电脑关闭成功。
2.8 如果开机前和关机前都没有设备需要加载或弹出的话,会输出开机前没有需要加载的设备或关机前没有需要弹出的设备
3 代码实现
USB 接口
package Work4;
public interface USB {
//接口里面的方法都是抽象方法,那个public abstract可以省略不写的!!!
void turnOn();
void turnOff();
}
KeyBoard类
package Work4;
public class KeyBoard implements USB{
private String name;
public KeyBoard() {
}
public KeyBoard(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void turnOn() {
System.out.println(name+"键盘加载了");
}
@Override
public void turnOff() {
System.out.println(name+"键盘弹出了");
}
}
MicroPhone类
package Work4;
public class MicroPhone implements USB{
private String name;
public MicroPhone() {
}
public MicroPhone(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void turnOn() {
System.out.println(name+"麦克风加载了");
}
@Override
public void turnOff() {
System.out.println(name+"麦克风弹出了");
}
}
Mouse类
package Work4;
public class Mouse implements USB{
private String name;
public Mouse() {
}
public Mouse(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void turnOn() {
System.out.println(name+"鼠标加载了");
}
@Override
public void turnOff() {
System.out.println(name+"鼠标弹出了");
}
}
Computer类
package Work4;
public class Computer {
//弄一个USB接口,里面的默认都为null
private USB[] usbs=new USB[4];
public Computer() {
}
//每次只能增加一个设备
public void addUSB(USB usb){
for (int i = 0; i <usbs.length; i++) {
//如果为空,则代表可以插入设备,否则就插入不了的
if(usbs[i]==null){
usbs[i]=usb;
break;
}
}
}
public void powerOn(){
boolean flag=false;
//判断是否插入了设备,只要有就为false
for (int i = 0; i <usbs.length; i++) {
if(usbs[i]!=null){
//如果USB接口不为空,则代表有设备,需要启动的
usbs[i].turnOn();
flag=true;
}
}
if(!flag){
System.out.println("开机前没有需要加载的设备");
}
System.out.println("开机成功!!!!");
}
public void powerOff(){
boolean flag=false;
//判断是否还有设备没有设备被弹出,只要有就为false
for (int i = 0; i <usbs.length; i++) {
if(usbs[i]!=null){
//如果USB接口不为空,则代表有设备,关机前需要弹出这些设备的
usbs[i].turnOff();
usbs[i]=null;
flag=true;
//弹出设备后,对应的接口上面就没有东西了,理应设置为null
}
}
if(!flag){
System.out.println("关机前没有需要弹出的设备");
}
System.out.println("关机成功!!!!");
}
}
TestComputer
package Work4;
public class TestComputer {
public static void main(String[] args) {
Computer c=new Computer();
c.addUSB(new Mouse("罗技"));
c.addUSB(new KeyBoard("双飞燕"));
c.addUSB(new MicroPhone("铁三角"));
c.powerOn();
c.powerOff();
//没有插入设备时测试
c.powerOn();
c.powerOff();
}
}
4 代码运行截图
到此这篇关于java实现模拟USB接口的功能的文章就介绍到这了,更多相关java 模拟USB接口内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!