java實現模擬USB接口的功能
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接口內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!