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接口的功能的详细内容。