java之如何定义USB接口

 更新时间:2023年05月08日 14:54:12   作者:驱动男孩  
这篇文章主要介绍了java之如何定义USB接口问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java定义USB接口

定义USB接口,模拟各USB设备,在电脑开机时依次启动,关机时依次退出

具体代码实现:

USB类

public interface USB {
    void turnOn();
    void turnOff();
}

接口类的实现

//接口的实现类之鼠标
public class Mouse implements USB {
    public void turnOn(){
        System.out.println("鼠标启动了");
    }
    public void turnOff(){
        System.out.println("鼠标关闭了");
    }
}
//接口的实现类之键盘
public class KeyBoard implements USB{
    public void turnOn(){
        System.out.println("键盘启动了");
    }
    public void turnOff(){
        System.out.println("键盘关闭了");
    }
}
//接口的实现类之麦克风
public class Microphone implements USB{
    public void turnOn(){
        System.out.println("麦克风启动了");
    }
    public void turnOff(){
        System.out.println("麦克风关闭了");
    }
}

计算机类

//计算机类
public class Computer {
    private USB[] usbArr = new USB[4];
    public void add(USB usb){
        for(int i = 0; i < usbArr.length;i++)
        {
            if(usbArr[i] == null)
            {
                usbArr[i] = usb;
                break;
            }
        }
    }
    public void powerOn() {
		for(int i=0;i<usbArr.length;i++) 
        {
			if(usbArr[i]!=null) 
            {
				usbArr[i].turnOn();
			}
		}
		System.out.println("电脑开机成功");
	}
	public void powerOff()
    {
		for(int i=0;i<usbArr.length;i++)
        {
			if(usbArr[i]!=null)
            {
				usbArr[i].turnOff();
			}
		}
		System.out.println("电脑关机成功");
	}
}

Usb测试类

public class USBTest {
    public static void main(String[] args){
        Computer p = new Computer();
        p.add(new Mouse());
        p.add(new KeyBoard());
        p.add(new Microphone());
        p.powerOn();
        System.out.println("-----------------");
        p.powerOff();
    }
}

控制台输出内容


注意:因为类的修饰符都有public,所以对于每个类,都要单独的eclipse中的一个包内定义这些类。

java接口应用:用接口定义标准

接口在实际开发中,有三大核心应用环境:

  • 定义操作标准
  • 表示能力
  • 在分布式开发中,暴露远程服务方法。
  • (后两种应用环境还没接触,等以后解释。)

如下图示例,比如键盘、鼠标、u盘等设备与电脑连接,必须通过电脑的USB设备,才能电脑访问,换一种例子解释就是:要想见一个公司的大boss或者明星(电脑)。要先统一联系他们的秘书(接口),然后秘书再转达给boss或者明星(接口子类)。

代码示例:

//使用一个接口实现一个标准,正常的开发中先写标准(接口),再写类
interface USB{
    public void insert();//插入
    public void setup();//安装驱动
}
//必须按着接口的标准使用电脑
class Computer{
    public void plugIn(USB usb){
        usb.insert();
        usb.setup();
    }
}
//鼠标
class  Mouse implements USB{
    public void insert(){
        System.out.println("鼠标插入");
    }
    public void setup(){
        System.out.println("鼠标安装驱动");
    }
}
//U盘
class UDisk implements USB{
    public void insert(){
        System.out.println("U盘插入");
    }
    public void setup(){
        System.out.println("U盘安装驱动");
    }
}
class InterfaceDemo{
    public static void main(String[] args) {
        Computer computer = new Computer();//实例化电脑的对象,调用其中的方法
        computer.plugIn(new Mouse());
        System.out.println("================");
        computer.plugIn(new UDisk());
    }
}

运行结果:

鼠标插入
鼠标安装驱动
================
U盘插入
U盘安装驱动

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Windows系统下Eclipse搭建ESP32编译环境及安装过程

    Windows系统下Eclipse搭建ESP32编译环境及安装过程

    Ecppse 使用了 ESP-IDF 中的 Makefile 支持。这意味着您需要从创建 ESP-IDF 项目开始。您可以使用 github 中的 idf-template 项目,接下来通过本文给大家介绍Windows系统下Eclipse搭建ESP32编译环境及安装过程,感兴趣的朋友一起看看吧
    2021-10-10
  • ApiOperation和ApiParam注解依赖的安装和使用以及注意事项说明

    ApiOperation和ApiParam注解依赖的安装和使用以及注意事项说明

    这篇文章主要介绍了ApiOperation和ApiParam注解依赖的安装和使用以及注意事项说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Mybatis CachingExecutor二级缓存使用示例详解

    Mybatis CachingExecutor二级缓存使用示例详解

    这篇文章主要介绍了 Mybatis的CachingExecutor与二级缓存使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java中集合LinkedList的原理与使用方法

    Java中集合LinkedList的原理与使用方法

    这篇文章主要给大家介绍了关于Java中集合LinkedList的原理与使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Java contains用法示例

    Java contains用法示例

    这篇文章主要介绍了Java contains的用法示例,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-11-11
  • WebSocket实现Web聊天室功能

    WebSocket实现Web聊天室功能

    这篇文章主要为大家详细介绍了WebSocket实现Web聊天室功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Spring 中如何根据环境切换配置 @Profile

    Spring 中如何根据环境切换配置 @Profile

    这篇文章主要介绍了Spring中如何根据环境切换配置@Profile的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Springcloud seata分布式事务实现代码解析

    Springcloud seata分布式事务实现代码解析

    这篇文章主要介绍了Springcloud seata分布式事务实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • java安全编码指南之:表达式规则说明

    java安全编码指南之:表达式规则说明

    这篇文章主要介绍了java安全编码指南之:表达式规则说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java BOI与NIO超详细实例精讲

    Java BOI与NIO超详细实例精讲

    在Java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通信架构存在一些缺陷,这篇文章介绍Java BOI与NIO
    2022-11-11

最新评论