首頁 > 軟體

java實現模擬USB介面的功能

2022-07-21 22:01:32

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介面內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com