设计一个usb接口程序,可以在开启电脑之前打开插入的usb设备,关闭电脑之前关闭所有插入的usb设备
# 一、先定义Usb接口
package usb;
public interface Usb {
//usb插槽开启
public abstract void powerOn();
//usb插槽关闭
public abstract void powerOff();
}
# 二、定义一个Computer类
package usb;
public class Computer {
//建立多个usb插槽
Usb usbArr[] = new Usb[3];
//电脑连接usb插口
public void add(Usb usb) {
//遍历usb插槽
for(int i = 0;i < usbArr.length;i++) {
if(usbArr[i] == null) {
//将usb插入插口,并存入数组中
usbArr[i] = usb;
break;
}
}
}
//开启电脑
public void turnOn() {
//遍历数组,进行检测usb是否插入
for(int i = 0;i < usbArr.length;i++) {
if(usbArr[i] != null) {
//执行usb设备的开启
usbArr[i].powerOn();
}
}
System.out.println("电脑开机成功");
}
//关闭电脑
public void turnOff() {
//遍历数组,进行检测usb是否插入
for(int i = 0;i < usbArr.length;i++) {
if(usbArr[i] != null) {
//执行usb设备的关闭
usbArr[i].powerOff();
}
}
System.out.println("电脑关机成功");
}
}
# 三、定义各种类来实现Usb接口
public class KeyBoard implements Usb {
public void powerOn() {
System.out.println("键盘开启成功");
}
public void powerOff() {
System.out.println("键盘关闭成功");
}
}
public class Mic implements Usb {
public void powerOn() {
System.out.println("麦克风开启成功");
}
public void powerOff() {
System.out.println("麦克风关闭成功");
}
}
public class Mouse implements Usb {
public void powerOn() {
System.out.println("鼠标开启成功");
}
public void powerOff() {
System.out.println("鼠标关闭成功");
}
}
# 四、定义测试类来调试
package usb;
public class Tast {
public static void main(String[] args) {
Computer c = new Computer();
//插入usb设备
c.add(new KeyBoard()); //这里需要用实现类的对象而不是接口的
c.add(new Mouse());
c.add(new Mic());
//开启电脑
c.turnOn();
System.out.println("************************************");
//关闭电脑
c.turnOff();
}
}
运行结果为:
键盘开启成功 鼠标开启成功 麦克风开启成功 电脑开机成功 ************************************ 键盘关闭成功 鼠标关闭成功 麦克风关闭成功 电脑关机成功
值得一提的是接口“Usb”是不能创建对象的,在Computer类中的方法add中参数为"Usb usb",在测试类中调用时应用实现类的对象来替代即c.add(new XX()) (XX为继承了接口的实现类)



