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盘安装驱动

总结

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

相关文章

  • Spring的自动装配Bean的三种方式

    Spring的自动装配Bean的三种方式

    本篇文章主要介绍了 Spring的自动装配Bean的三种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • GSON实现Java对象的JSON序列化与反序列化的实例教程

    GSON实现Java对象的JSON序列化与反序列化的实例教程

    GSON是Google开发并开源的一个Java的JSON转换库,这里我们将来讲解GSON实现Java对象的JSON序列化与反序列化的实例教程,需要的朋友可以参考下
    2016-06-06
  • 剖析Java中阻塞队列的实现原理及应用场景

    剖析Java中阻塞队列的实现原理及应用场景

    这篇文章主要介绍了剖析Java中阻塞队列的实现原理及应用场景,这里也对阻塞和非阻塞队列的不同之处进行了对比,需要的朋友可以参考下
    2015-12-12
  • Java list与set中contains()方法效率案例详解

    Java list与set中contains()方法效率案例详解

    这篇文章主要介绍了Java list与set中contains()方法效率案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java中获取Class对象的三种方式详解

    Java中获取Class对象的三种方式详解

    本文介绍了Java中获取Class对象的三种常见方式:使用.class语法、使用Class.forName()方法以及使用.getClass()方法,需要的朋友可以参考下
    2023-12-12
  • Mybatis查询方法如何实现没有返回值

    Mybatis查询方法如何实现没有返回值

    这篇文章主要介绍了Mybatis查询方法如何实现没有返回值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java Spring框架简介与Spring IOC详解

    Java Spring框架简介与Spring IOC详解

    Spring 框架是一个轻量级的解决方案,可以一站式地构建企业级应用。它是为了解决 企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。IOC 是 Inversion of Control 的缩写,多数书籍翻译成控制反转
    2021-09-09
  • 微信小程序录音文件格式silk遇到的问题及解决方法

    微信小程序录音文件格式silk遇到的问题及解决方法

    录音文件为silk格式,说是silk其实是base64加密后的webm格式,只需将其转为webm格式即可。但是在处理过程中遇到各种坑,下面小编给大家带来了微信小程序录音文件格式silk遇到的问题及解决方法,感兴趣的朋友一起看看吧
    2018-09-09
  • Spring源码解密之自定义标签与解析

    Spring源码解密之自定义标签与解析

    这篇文章主要给大家介绍了关于Spring源码解密之自定义标签与解析的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参借鉴,下面随着小编来一起学习学习吧。
    2018-01-01
  • MyBatis将查询出的两列数据装配成键值对的操作方法

    MyBatis将查询出的两列数据装配成键值对的操作方法

    这篇文章主要介绍了MyBatis将查询出的两列数据装配成键值对的操作代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08

最新评论