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

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具