Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan fungsi simulasi antara muka USB dalam java

Bagaimana untuk melaksanakan fungsi simulasi antara muka USB dalam java

WBOY
WBOYke hadapan
2023-05-26 18:07:222627semak imbas

1 Topik

Simulasi fungsi antara muka USB
Kami sering menggunakan antara muka USB apabila menggunakan komputer Tetikus, papan kekunci, dan lain-lain adalah semua peranti dengan antara muka USB. Peranti dengan antara muka USB ini boleh digunakan secara normal dengan memasangkan papan kekunci ke dalam antara muka USB komputer.
Melalui konsep reka bentuk pengaturcaraan berorientasikan antara muka program JAVA, proses menggunakan antara muka USB untuk memacu tetikus dan papan kekunci disimulasikan.

Keperluan:
① Tentukan antara muka USB, yang mempunyai kaedah turnOn() untuk memulakan peranti USB, dan kaedah turnOff() untuk menutup peranti; , dan Mikrofon Mikrofon Kelas melaksanakan antara muka USB
③ Tentukan kelas komputer
powerOn() untuk menghidupkan, semua peranti USB perlu dimuatkan sebelum dihidupkan; semua peranti USB perlu dikeluarkan sebelum dimatikan.
Nota: Tetikus dan peranti lain tidak perlu dipalamkan apabila komputer dihidupkan

2 Analisis idea

2.1 Tulis antara muka USB, yang mempunyai kaedah hidupkan. dan kaedah mematikan

2.2 Tulis kelas Tetikus (tetikus), Papan Kekunci (papan kekunci) dan Mikrofon (mikrofon) untuk melaksanakan antara muka USB

2.3 Tulis semula hidupkan dan matikan untuk mencetak objek yang sepadan maklumat

2.4 Kelas Komputer mewujudkan Tatasusunan antara muka, digunakan untuk menyimpan objek instantiate setiap subkelas yang melaksanakan antara muka

2.5 Cipta kaedah peranti menambah satu masa addUSB (USB usb) dalam kelas Komputer, supaya setiap kali kaedah ini dipanggil, komputer A peranti akan dimasukkan pada kedudukan di mana objek tatasusunan antara muka bukan nol

2.6 PowerOn dalam Komputer merentasi semua antara muka USB Jika objek antara muka bukan batal, kaedah turnOn yang diganti dipanggil , apabila semua dilalui, ia akan mencetak bahawa komputer berjaya dimulakan.

2.7 PowerOff dalam Komputer merentasi semua antara muka USB Jika objek antara muka tidak batal, kaedah pemadaman yang ditindih peranti dipanggil, dan kemudian objek antara muka diberikan nilai nol apabila traversal selesai Semua akan dicetak selepas komputer dimatikan dengan jayanya.

2.8 Jika tiada peranti yang perlu dimuatkan atau dikeluarkan sebelum memulakan atau sebelum dimatikan, ia akan mengeluarkan bahawa tiada peranti yang perlu dimuatkan sebelum dimulakan atau tiada peranti yang perlu untuk dikeluarkan sebelum ditutup

3 Pelaksanaan Kod

Antara muka USB

package Work4;
public interface USB {
    //接口里面的方法都是抽象方法,那个public abstract可以省略不写的!!!
    void turnOn();
    void turnOff();
}

Kelas Papan Kekunci

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+"键盘弹出了");
    }
}

Kelas Mikrofon

rreee

Kelas tetikus

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+"麦克风弹出了");
    }

}

Kelas komputer

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+"鼠标弹出了");
    }
}

TestComputer

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("关机成功!!!!");
    }
}

4 Tangkapan skrin kod berjalan

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi simulasi antara muka USB dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam