首頁 > Java > java教程 > java如何實現模擬USB介面的功能

java如何實現模擬USB介面的功能

WBOY
發布: 2023-05-26 18:07:22
轉載
2665 人瀏覽過

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介面的功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板