Java实战:电脑USB接口案例的分析与Java代码实现

Java实战:电脑USB接口案例的分析与Java代码实现

  1. 案例分析:(1)需要创建的类含有电脑类、鼠标类、键盘类;需要创建的接口为USB接口。(2)各自要实现的方法如图。(3)电脑调用接口,鼠标和键盘实现接口。
    在这里插入图片描述
  2. 代码实现
    (1)接口
package blackhorsepractice.usb;

public interface USB {
    public abstract void openDevice();
    public abstract void shutOffDevice();
}

(2)电脑类

package blackhorsepractice.usb;

public class Computer {
    public void poweron(){
        System.out.println("电脑打开了!");
    };
    public void poweroff(){
        System.out.println("电脑关闭了!");
    };
    public void useDevice(USB usb){
        usb.openDevice();
        if(usb instanceof MouseImpl){
            ((MouseImpl) usb).click();
        }
        usb.shutOffDevice();
    }
}

(3)鼠标类

package blackhorsepractice.usb;

public class MouseImpl implements USB{

    public  void openDevice(){
        System.out.println("鼠标打开了,可以用啦!");
    };
    public void click(){
        System.out.println("点击鼠标");
    }
    public void shutOffDevice(){
        System.out.println("鼠标下班了,下次再来用吧");
    };
}

(4)键盘类

package blackhorsepractice.usb;

public class KeyboardImpl implements USB{
    public  void openDevice(){
        System.out.println("键盘打开了,可以用啦!");
    };
    public void shutOffDevice(){
        System.out.println("键盘下班了,下次再来用吧");
    };
}

(5)测试方法

package blackhorsepractice.usb;

public class TestUSB {
    public static void main(String[] args) {
        Computer c=new Computer();
        c.poweron();
        USB musb=new MouseImpl();
        USB kusb=new KeyboardImpl();
        c.useDevice(musb);
        c.useDevice(kusb);
        c.poweroff();
    }
}
  1. 运行结果
电脑打开了!
鼠标打开了,可以用啦!
点击鼠标
鼠标下班了,下次再来用吧
键盘打开了,可以用啦!
键盘下班了,下次再来用吧
电脑关闭了!
已标记关键词 清除标记
相关推荐
E:. │ .classpath │ .project │ jusb.dll │ jusb.ilk │ ├─.settings │ org.eclipse.jdt.core.prefs │ ├─bin │ │ RunUSBControllerTest.class │ │ │ └─usb │ ├─core │ │ Bus.class │ │ Configuration.class │ │ ControlMessage.class │ │ Descriptor$GenericDescriptor.c │ │ Descriptor.class │ │ Device.class │ │ DeviceDescriptor.class │ │ DeviceSPI.class │ │ Endpoint$BulkInputStream.class │ │ Endpoint$BulkOutputStream.clas │ │ Endpoint.class │ │ Host.class │ │ HostFactory.class │ │ Hub.class │ │ Interface.class │ │ PortIdentifier.class │ │ USBException.class │ │ USBListener.class │ │ USBListenerAdapter.class │ │ │ ├─devices │ │ Kodak$InputHack.class │ │ Kodak$OutputHack.class │ │ Kodak.class │ │ Rio500$Data.class │ │ Rio500$FolderEntry.class │ │ Rio500$MemoryStatus.class │ │ Rio500$SongEntry.class │ │ Rio500.class │ │ │ ├─linux │ │ DeviceImpl.class │ │ HID$Event.class │ │ HID.class │ │ Linux$HostImpl.class │ │ Linux$Watcher.class │ │ Linux.class │ │ USB.class │ │ USBException.class │ │ │ ├─remote │ │ HostProxy$BusProxy.class │ │ HostProxy$DeviceProxy.class │ │ HostProxy$DeviceSPIProxy.class │ │ HostProxy$MappingPurger.class │ │ HostProxy.class │ │ RemoteBus.class │ │ RemoteDeviceSPI.class │ │ RemoteHost.class │ │ RemoteHostFactory.class │ │ RemoteUSBListener.class │ │ USBD.class │ │ USBListenerProxy.class │ │ │ ├─test │ │ ControllerUSBListener.class │ │ USBController.class │ │ │ ├─util │ │ LangCode.class │ │ ShowTree.class │ │ USBSocket.class │ │ │ ├─view │ │ Foo$1.class │ │ Foo$DisplayPanel.class │ │ Foo$USBHost.class │ │ Foo.class │ │ HubNode.class │ │ KodakNode.class │ │ RioNode$FolderNode.class │ │ RioNode.class │ │ USBNode.class │ │ │ └─windows │ DeviceImpl.class │ JUSB.class │ NonJUSB.class │ package.html │ USB.class │ USBException.class │ Windows$HostImpl.class │ Windows$Watcher.class │ Windows.class │ ├─InstallationFiles │ ├─JusbDll │ │ jusb.dll │ │ jusb.ilk │ │ │ └─JusbDriver │ jusb.inf │ jusb.reg │ jusb.sys │ ├─JavaSources │ │ RunUSBControllerTest.java │ │ │ └─usb │ ├─core │ │ Bus.java │ │ Configuration.java │ │ ControlMessage.java │ │ Descriptor.java │ │ Device.java │ │ DeviceDescriptor.java │ │ DeviceSPI.java │ │ Endpoint.java │ │ Host.java │ │ HostFactory.java │ │ Hub.java │ │ Interface.java │ │ PortIdentifier.java │ │ USBException.java │ │ USBListener.java │ │ USBListenerAdapter.java │ │ │ ├─devices │ │ Kodak.java │ │ Rio500.java │ │ │ ├─linux │ │ DeviceImpl.java │ │ HID.java │ │ Linux.java │ │ USB.java │ │ USBException.java │ │ │ ├─remote │ │ HostProxy.java │ │ RemoteBus.java │ │ RemoteDeviceSPI.java │ │ RemoteHost.java │ │ RemoteHostFactory.java │ │ RemoteUSBListener.java │ │ USBD.java │ │ USBListenerProxy.java │ │ │ ├─test │ │ ControllerUSBListener.java │ │ USBController.java │ │ │ ├─util │ │ LangCode.java │ │ ShowTree.java │ │ USBSocket.java │ │ │ ├─view │ │ Foo.java │ │ HubNode.java │ │ KodakNode.java │ │ RioNode.java │ │ USBNode.java │ │ │ └─windows │ DeviceImpl.java │ JUSB.java │ NonJUSB.java │ package.html │ USB.javaUSBException.java │ Windows.java │ ├─JusbDll │ ├─external-header-file │ │ ├─ddk │ │ │ └─inc │ │ │ │ cfg.h │ │ │ │ guiddef.h │ │ │ │ hidpi.h │ │ │ │ hidsdi.h │ │ │ │ hidusage.h │ │ │ │ usb100.h │ │ │ │ usbioctl.h │ │ │ │ usbiodef.h │ │ │ │ │ │ │ └─w2k │ │ │ setupapi.h │ │ │ │ │ └─java │ │ └─include │ │ │ jni.h │ │ │ │ │ └─win32 │ │ jni_md.h │ │ │ ├─external-lib-file │ │ │ hid.lib │ │ │ │ │ └─w2k │ │ setupapi.lib │ │ │ ├─jni │ │ usb_windows_DeviceImpl.h │ │ usb_windows_JUSB.h │ │ usb_windows_USB.h │ │ usb_windows_Windows.h │ │ │ └─jusb │ │ devnode.cpp │ │ guids.h │ │ helperFunctions.cpp │ │ ioctls.h │ │ jusb.cpp │ │ jusb.dsp │ │ jusb.dsw │ │ jusb.h │ │ jusb.mak │ │ jusb.ncb │ │ jusb.opt │ │ jusb.plg │ │ jusbJNIdeviceimpl.cpp │ │ jusbJNIjusb.cpp │ │ jusbJNIusb.cpp │ │ jusbJNIwindows.cpp │ │ │ └─Debug └─JusbDriver └─sys │ Control.c │ Driver.h │ DriverEntry.c │ guids.h │ ioctls.h │ jusb.bmf │ jusb.inf │ jusb.mof │ jusb.rc │ jusb.reg │ jusbdriver.aps │ makefile │ makefile.inc │ PlugPlay.c │ Power.c │ ReadWrite.c │ resource.h │ sources │ sys.dsp │ sys.dsw │ sys.ncb │ sys.opt │ sys.plg │ Wmi.c │ └─Debug E:\android_svn\215256673JavaUSBComplete>
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页