溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java如何實(shí)現(xiàn)模擬USB接口的功能

發(fā)布時(shí)間:2022-07-22 09:56:57 來源:億速云 閱讀:240 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“java如何實(shí)現(xiàn)模擬USB接口的功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“java如何實(shí)現(xiàn)模擬USB接口的功能”吧!

1 題目

模擬USB接口的功能
我們?cè)谑褂糜?jì)算機(jī)的時(shí)候經(jīng)常會(huì)用到USB接口,鼠標(biāo)、鍵盤等都是帶USB接口的設(shè)備,我們只需要將鼠標(biāo)、鍵盤插入到計(jì)算機(jī)的USB接口中就能正常使用這些帶USB接口的外設(shè)。
通過JAVA程序的面向接口編程的設(shè)計(jì)思想,模擬計(jì)算機(jī)使用USB接口驅(qū)動(dòng)鼠標(biāo)和鍵盤的過程。

要求:
① 定義USB接口,接口中有turnOn()啟動(dòng)USB設(shè)備的方法,和turnOff()關(guān)閉設(shè)備的方法;
②定義Mouse鼠標(biāo)、KeyBoard鍵盤、MicroPhone麥克風(fēng)類實(shí)現(xiàn)USB接口;
③定義計(jì)算機(jī)Computer類
powerOn()開機(jī),開機(jī)前需要加載所有的USB設(shè)備;
powerOff()關(guān)機(jī),關(guān)機(jī)前需要彈出所有的USB設(shè)備。
注意:開機(jī)的時(shí)候鼠標(biāo)等設(shè)備可以沒有插進(jìn)去    

2 思路分析

2.1 寫一個(gè)接口USB,里面有turnOn方法和turnOff方法

2.2 寫Mouse(鼠標(biāo))、KeyBoard(鍵盤)、MicroPhone(麥克風(fēng))類實(shí)現(xiàn)USB接口

2.3 重寫turnOn和turnOff需要打印相應(yīng)的對(duì)象信息

2.4 Computer類建立一個(gè)接口數(shù)組,用來存放每個(gè)實(shí)現(xiàn)接口的的子類的實(shí)例化對(duì)象

2.5 Computer類中創(chuàng)建一個(gè)單次添加設(shè)備方法addUSB(USB usb),使得每次調(diào)用該方法時(shí),該電腦會(huì)在接口數(shù)組對(duì)象不為null的位置插上一個(gè)設(shè)備

2.6 Computer中的powerOn是遍歷完所有的USB接口,若接口對(duì)象不為null,就調(diào)用該設(shè)備的重寫的turnOn方法,當(dāng)遍歷完所有的后會(huì)打印電腦啟動(dòng)成功。

2.7 Computer中的powerOff是遍歷完所有的USB接口,若接口對(duì)象不為null,則調(diào)用該設(shè)備的被重寫的turnOff方法,然后把該接口對(duì)象賦值為null,當(dāng)遍歷完成所有的后會(huì)打印電腦關(guān)閉成功。

2.8 如果開機(jī)前和關(guān)機(jī)前都沒有設(shè)備需要加載或彈出的話,會(huì)輸出開機(jī)前沒有需要加載的設(shè)備或關(guān)機(jī)前沒有需要彈出的設(shè)備

3 代碼實(shí)現(xiàn)

USB 接口

package Work4;
public interface USB {
    //接口里面的方法都是抽象方法,那個(gè)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+"麥克風(fēng)加載了");
    }

    @Override
    public void turnOff() {
        System.out.println(name+"麥克風(fēng)彈出了");
    }

}

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+"鼠標(biāo)加載了");
    }

    @Override
    public void turnOff() {
        System.out.println(name+"鼠標(biāo)彈出了");
    }
}

Computer類

package Work4;
public class Computer {
    //弄一個(gè)USB接口,里面的默認(rèn)都為null
    private USB[] usbs=new USB[4];
    public Computer() {
    }
    //每次只能增加一個(gè)設(shè)備
    public void addUSB(USB usb){
        for (int i = 0; i <usbs.length; i++) {
            //如果為空,則代表可以插入設(shè)備,否則就插入不了的
            if(usbs[i]==null){
                usbs[i]=usb;
                break;
            }
        }
    }
    public void powerOn(){
        boolean flag=false;
        //判斷是否插入了設(shè)備,只要有就為false
        for (int i = 0; i <usbs.length; i++) {
            if(usbs[i]!=null){
                //如果USB接口不為空,則代表有設(shè)備,需要啟動(dòng)的
                usbs[i].turnOn();
                flag=true;
            }
        }
        if(!flag){
            System.out.println("開機(jī)前沒有需要加載的設(shè)備");
        }
            System.out.println("開機(jī)成功!!!!");
    }
    public void powerOff(){
        boolean flag=false;
        //判斷是否還有設(shè)備沒有設(shè)備被彈出,只要有就為false
        for (int i = 0; i <usbs.length; i++) {
            if(usbs[i]!=null){
                //如果USB接口不為空,則代表有設(shè)備,關(guān)機(jī)前需要彈出這些設(shè)備的
                usbs[i].turnOff();
                usbs[i]=null;
                flag=true;
                //彈出設(shè)備后,對(duì)應(yīng)的接口上面就沒有東西了,理應(yīng)設(shè)置為null
            }
        }
        if(!flag){
            System.out.println("關(guān)機(jī)前沒有需要彈出的設(shè)備");
        }
            System.out.println("關(guān)機(jī)成功!!!!");
    }
}

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();
        //沒有插入設(shè)備時(shí)測(cè)試
        c.powerOn();
        c.powerOff();
    }
}

4 代碼運(yùn)行截圖

java如何實(shí)現(xiàn)模擬USB接口的功能

到此,相信大家對(duì)“java如何實(shí)現(xiàn)模擬USB接口的功能”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI