ホームページ  >  記事  >  Java  >  JavaでUSBインターフェースをシミュレートする機能を実装する方法

JavaでUSBインターフェースをシミュレートする機能を実装する方法

WBOY
WBOY転載
2023-05-26 18:07:222576ブラウズ

1 質問

USB インターフェースの機能をシミュレートしてください
私たちはコンピューターを使用するときによく USB インターフェースを使用します。マウス、キーボードなどはすべて USB インターフェースを持つデバイスです。マウスを接続するだけで済みます。 USB インターフェースを備えたこれらの周辺機器は、キーボードをコンピューターの USB インターフェースに接続することで通常どおり使用できます。
JAVA プログラムのインターフェイス指向プログラミング設計コンセプトを通じて、USB インターフェイスを使用してマウスとキーボードを駆動するプロセスがシミュレートされます。

要件:
① USB デバイスを開始する TurnOn() メソッドとデバイスを閉じる TurnOff() メソッドを持つ USB インターフェイスを定義します;
② マウス、キーボードを定義しますおよびマイクマイク このクラスは USB インターフェイスを実装します;
③ コンピューター クラスを定義します
powerOn() でコンピューターの電源をオンにします。開始する前にすべての USB デバイスをロードする必要があります;
powerOff() でシャットダウンします、コンピューターの電源をオフにする前に、すべての USB デバイスを取り外す必要があります。
注: コンピュータの電源が入っているときにマウスやその他のデバイスを接続する必要はありません

2 アイデア分析

2.1 インターフェイス USB を作成します。これには、turnOn メソッドとTurnOff メソッド

2.2 Mouse (マウス)、KeyBoard (キーボード)、および MicroPhone (マイク) クラスを記述して USB インターフェイスを実装します

2.3 TurnOn および TurnOff を書き換えて、対応するオブジェクト情報を出力します

2.4 Computer クラスは、インターフェイスを実装する各サブクラスのインスタンス化されたオブジェクトを格納するために使用されるインターフェイス Array を確立します。

2.5 1 回限りの追加デバイス メソッド addUSB (USB usb) をコンピュータ クラス。このメソッドが呼び出されるたびに、インターフェイス配列オブジェクトが null でないコンピュータ A デバイスが接続されます。

2.6 コンピュータの PowerOn は、すべての USB インターフェイスを通過します。インターフェイス オブジェクトが null でない場合、 、デバイスのオーバーライドされたturnOn メソッドが呼び出され、すべてが完了すると、コンピュータが正常に起動したことが表示されます。

2.7 コンピュータの PowerOff は、すべての USB インターフェイスを横断します。インターフェイス オブジェクトが null でない場合、デバイスのオーバーライドされた TurnOff メソッドが呼び出され、インターフェイス オブジェクトには null が割り当てられます。横断が完了すると、すべてが 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+"鼠标弹出了");
    }
}

コンピュータ クラス

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。